- [예제입력1]의 테스트 케이스를 분석해보면 다음과 같이 이해할 수 있다.
#1 : 2분에 기상해서 3분동안 일을 하고 5분이 된다.
#2 : 5분부터 8분동안 일을 하고 13분이 된다.
#3 : 13분부터 1분동안 일을 하고 14분이 된다.
#4 : 14분부터 5분동안 일을 하고 19분이 된다.결국 존은 제 시간에 일을 끝낼 수 있게 결정할 수 있는 한도에서 존이 가장 늦게 일어날 수 있는 시간은 2분이다.
import sys
input = sys.stdin.readline
N = int(input())
t = 0
Time = []
for _ in range(N):
S_i, T_i = map(int, input().strip().split())
Time.append([S_i, T_i])
# 끝나는 시간을 기준으로 오름차순 정렬을 수행
Time = sorted(Time, key = lambda x : x[1])
total_time = 0
result = float('INF')
for t, s in Time:
# 총 누적 시간
total_time += t
# 만약 일을 s - t의 값이 음수가 나오면 일을 끝낼 수 없으므로 0을 출력
result = min(result, s - total_time)
if result < 0:
print(-1)
sys.exit(0)
print(result)