QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#18911. Bakejoon Online Judge

Statistics

Bakejoon Online Judge는 특이한 조건을 만족하는 빵을 구워서 제출하는 온라인 저지이다.

Bakejoon Online Judge의 유저인 당신은 다음 조건을 만족하는 $N$개의 신선한 빵을 한 번에 제출해야 한다.

  • 빵은 한 번에 최대 한 개만 구울 수 있으며, 굽기 시작한 빵을 중단할 수는 없다.

  • 각 빵은 준비 시간 $P_i$, 굽는 시간 $T_i$, 신선도 $F_i$라는 특성을 가진다.

    • 빵을 굽기 전의 준비 시간이 필요하므로 $i$번째 빵은 시각 $P_i$부터 구울 수 있다.
    • $i$번째 빵을 굽는 데에는 $T_i$ 시간이 걸린다.
    • $i$번째 빵은 완전히 구워진 시각부터 $F_i$ 시간 동안 신선함이 유지된다.

엄밀히는, 시각 $t \ge P_i$에 $i$번째 빵을 굽기 시작하면 시각 $t+T_i$에 빵이 완전히 구워지고, 시각 $t+T_i$부터 시각 $t+T_i+F_i$까지 신선함이 유지된다. 시각이 정확히 $t+T_i$ 또는 $t+T_i+F_i$일 때도 빵은 신선하다.

$N$개의 빵의 특성이 주어질 때 모든 빵을 신선한 상태로 제출할 수 있는지와 가능하다면 빵을 제출할 수 있는 가장 이른 시각을 구해보자.

입력

첫째 줄에 빵의 개수 $N$이 주어진다.

$$1 \le N \le 200\,000$$

둘째 줄부터 $N$개의 줄에 걸쳐 각 빵의 준비 시간 $P_i$, 굽는 시간 $T_i$, 신선도 $F_i$가 공백을 사이에 두고 주어진다.

$$0 \le P_i,T_i,F_i \le 10^9$$

출력

$N$개의 빵을 모두 신선한 상태로 제출할 수 있는 가장 이른 시각을 출력한다. 만약 $N$개의 빵을 모두 신선한 상태로 제출할 수 없다면 -1을 대신 출력한다.

입출력 예시

예제 1

입력

4
2 0 4
4 1 2
1 2 0
0 3 7

출력

7

예제 2

입력

3
0 1 1
1 1 1
2 1 1

출력

-1

노트

첫 번째 예제의 경우 다음 방식대로 빵을 구우면 시각 $7$에 모든 빵을 신선한 상태로 제출할 수 있다.

굽는 시간 구간 신선한 시간 구간
1 시각 $5$에 즉시 $[5,9]$
2 $[4,5]$ $[5,7]$
3 $[5,7]$ 시각 $7$에만
4 $[0,3]$ $[3,10]$

즉, 4번 빵을 시각 $0$부터 시각 $3$까지, 2번 빵을 시각 $4$부터 시각 $5$까지 굽고, 시각 $5$에 1번 빵을 즉시 구운 뒤, 3번 빵을 시각 $5$부터 시각 $7$까지 구우면 시각 $7$에 네 빵이 모두 신선하다.

원문의 그림에서 회색 X는 아직 빵을 구울 준비가 되지 않았음을, 초록색 P는 준비가 완료되었음을, 빨간색 T는 오븐에서 빵을 굽고 있음을, 파란색 F는 빵이 신선한 상태임을, 노란색 R은 빵이 더 이상 신선하지 않음을 나타낸다.

두 번째 예제의 경우 어떻게 빵을 굽더라도 $3$개의 빵을 모두 신선한 상태로 만들 수 없다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.