폭죽

NYPC 2023 · 본선

일차원 직선 위의 좌표 00과 좌표 DD에 각각 폭죽 발사대가 있다. 좌표 00의 발사대는 오른쪽으로, 좌표 DD의 발사대는 왼쪽으로 폭죽을 발사한다. 두 폭죽은 모두 11초에 거리 11만큼 이동한다. 편의상, 폭죽이 발사되는 시각을 00초라고 하자.

두 발사 장치의 사이에는 장치 NN 개가 있다. 각 장치에 폭죽이 들어가면 해당 장치에 설정된 시간만큼 폭죽이 장치 안에 잡혀 있다가 다시 이동을 시작한다.

두 폭죽이 만나면 즉시 폭발한다. 폭죽이 폭발하는 시각을 계산하는 프로그램을 작성하라. 폭죽이 장치의 위치에서 폭발할 수도 있음에 유의하라.

위 그림은 D=13D=13이고 N=4N=4인 경우를 보여준다. 그림은 위에서 아래로 시간 순서이며, 그림에서 tt는 시각을 의미한다. 좌표 22, 55, 88, 1111에 장치가 있으며, 각 장치에 설정된 시간은 맨 왼쪽 장치부터 22, 22, 22, 11이다.

왼쪽에서 발사된 폭죽은 22초에 맨 왼쪽 장치에 도착한다. 22초의 지연 시간이 지난 44초에 맨 왼쪽 장치를 떠난다. 비슷하게, 77초에 왼쪽에서 두 번째 장치에 도착하고, 99초에 떠난다. 이 폭죽은 1010초에 좌표 66을 지난다.

오른쪽에서 발사된 폭죽은 22초에 맨 오른쪽 장치에 도착하고, 33초에 떠난다. 오른쪽에서 두 번째 장치에 66초에 도착하고, 88초에 떠난다. 이 폭죽도 1010초에 좌표 66을 지난다. 따라서, 이 경우의 답은 1010이다.

입력 형식

첫 줄에 장치의 개수를 나타내는 정수 NN과 폭죽 발사 위치를 나타내는 정수 DD가 공백으로 구분되어 주어진다. (0N5000000 \le N \le 500\,000; 0<D10000000000 < D \le 1\,000\,000\,000)

이어지는 NN 개의 줄의 ii 번째 줄에는 ii 번째 장치가 위치한 좌표를 나타내는 정수 XiX_i와 그 장치에 설정된 시간을 나타내는 정수 TiT_i가 공백으로 구분되어 주어진다. (0<X1<X2<<XN<D0 < X_1 < X_2 < \cdots < X_N < D; 1Ti20001 \le T_i \le 2\,000)

출력 형식

첫 줄에 폭죽이 폭발하는 시각을 소수점 첫째 자리까지 출력한다.

예제 1

입력

4 13 2 2 5 2 8 2 11 1

출력

10.0

예제 2

입력

0 5

출력

2.5

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 13

N=0N = 0

종류 2: 28

N100N \le 100; D5000D \le 5\,000

종류 3: 22

N1000N \le 1\,000

종류 4: 37

추가적인 제한 조건이 없음.

해설