만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

버터 녹이기

시간 제한2초메모리 제한1024 MB

요약
각 버터는 중심 높이가 1이 될 때까지 양쪽으로 퍼집니다. 두 버터의 구간이 처음 겹치기 전까지 가능한 최대 정수 시간을 구합니다.
난이도

보통10점 중 6점

유형
정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

성현이는 바나나 푸딩을 만들기 위해 먼저 버터를 녹이려고 한다. 이를 위해 양쪽으로 무한히 뻗은 직선 모양의 프라이팬에 홀수 높이의 버터 NN개를 올려놓고, 열을 가해서 녹인다. 위치가 xx인 곳에 올려진 버터는 처음에 구간 [x,x][x, x]를 차지한다. 열을 가하면 처음 버터가 올려진 부분의 높이가 1이 될 때까지 1초마다 좌우로 1씩 퍼진다. 즉, [L,R][L, R]을 차지하던 버터는 1초 후 [L−1,R+1][L-1, R+1]을 차지한다. 다음 표는 위치 x=5x=5, 높이 h=7h=7인 버터가 녹는 과정이다.

0123456789
0초0000070000
1초0000151000
2초0001131100
3초0011111110
4초0011111110

녹는 도중에 서로 다른 두 버터가 섞일 수 있다. 두 버터가 섞인다는 것은, 각각 [l1,r1][l_1, r_1]과 [l2,r2][l_2, r_2]를 차지할 때 두 구간이 겹치는 것을 뜻한다. 즉, [l1,r1]∩[l2,r2]≠∅[l_1, r_1] \cap [l_2, r_2] \neq \emptyset인 경우이다. 다음 그림은 입력 예시 1의 상황이다.

2초가 지난 상황에서는 두 버터가 섞이지 않는다.

3초까지 가열하면 x=2x=2에서 두 버터가 섞인다.

성현이는 어떤 두 버터도 섞이지 않을 때까지만 버터를 녹이고 싶다. 그러나 정수 시간만큼만 가열할 수 있다. 즉, 3초나 4초를 가열할 수는 있지만, 3.5초나 3.105초를 가열할 수는 없다. 각 버터의 처음 위치 xx와 높이 hh가 NN개 주어졌을 때, 성현이가 가열할 수 있는 가장 긴 시간을 구하라.

입력

첫째 줄에 성현이가 올린 버터의 수 NN이 주어진다.

이어 NN개의 줄에 걸쳐 버터가 놓인 좌표 xix_i와 버터의 높이 hih_i가 공백으로 구분되어 주어진다.

NN

x1x_1 h1h_1

x2x_2 h2h_2

⋯\cdots

xN−1x_{N-1} hN−1h_{N-1}

xNx_N hNh_N

출력

성현이가 가열할 수 있는 가장 긴 시간을 출력한다. 성현이가 1010010^{100}초 이상 가열할 수 있다면 forever를 출력한다.

제한

  • 2≤N≤300 0002 \leq N \leq 300\,000
  • −109≤xi≤109-10^9 \leq x_i \leq 10^9
  • xix_i는 모두 다르다.
  • 1≤hi≤109−11 \leq h_i \leq 10^9-1
  • hih_i는 홀수이다.
  • xix_i와 hih_i는 모두 정수이다.

예제3

  1. 예제 1

    입력
    2
    1 3
    5 7
    
    예상 출력
    2
    
  2. 예제 2

    입력
    2
    5 5
    1 5
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3
    -1 1
    19191919 7
    100 3
    
    예상 출력
    forever