1일부터 연속으로 최대 며칠 동안 놀수 있을지 구하려면, 모든 과제를 처리할 수 있는 최대한 늦게 시작하는 날짜를 구하면 된다.
이때 가장 마감일이 늦는 과제를 먼저 생각해보는 것이 포인트이다.
가장 마감일이 늦는 순서대로 정렬을 한다. 예제의 경우에는
1 13
3 10
2 8
순서이다.
1-13 과제를 처리하기 위해 하루가 소비된다. 최대한 늦게 시작하는 날짜는 13이다.
3-10 과제를 처리하기 위해 사흘이 소비된다. 최대한 늦게 시작하는 날짜는 8이다.
2-8 과제를 처리하기 위해 이틀이 소비된다. 이때 그 전에 구한 최대한 늦게 시작하는 날짜인 7이 마지막 과제의 마감일인 8보다 앞서 있으므로, 세번째 과제 기준으로 생각하여 6일에 시작하면 된다.
그러면 1-5일까지 쉴수 있다.
#백준, 7983 내일 할거야
import sys
N = int(input())
schedule = []
for i in range(N):
open, close = map(int, sys.stdin.readline().rstrip().split())
schedule.append([close, open])
schedule.sort(reverse=True)
day = schedule[0][0]
for close, open in schedule:
if day >= close:
day = close - open
else:
day -= open
print(day)