만드는 중입니다

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

에스컬레이터

면접 대비

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

요약
양방향 에스컬레이터를 시뮬레이션한다. 한 방향 이동에 10초가 걸리고 반대 방향 승객은 멈출 때까지 기다리며, 마지막 승객이 내리는 시각을 출력한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현, 큐, 정렬
정답자
아직 제출이 없습니다

문제

새로운 종류의 에스컬레이터를 발명했다. 바로 양방향 에스컬레이터다. 일반 에스컬레이터는 사람을 한쪽 끝에서 다른 쪽 끝으로만 데려가지만, 양방향 에스컬레이터는 양쪽 끝 중 어느 쪽에서든 다른 쪽 끝으로 사람을 데려갈 수 있다.

양방향 에스컬레이터가 한쪽 끝에서 다른 쪽 끝까지 사람을 데려가는 데는 10초가 걸린다. 즉, 어떤 사람이 시각 T에 양방향 에스컬레이터의 한쪽 끝에서 탑승하면 시각 T + 10에 반대쪽 끝에서 내린다. 이 사람은 시각 T + 10에는 더 이상 양방향 에스컬레이터를 이용하지 않는다.

양방향 에스컬레이터를 아무도 이용하지 않으면 즉시 멈춘다. 따라서 처음에는 멈춰 있는 상태다.

양방향 에스컬레이터가 멈춰 있을 때 어떤 사람이 한쪽 끝에서 탑승하면, 에스컬레이터는 자동으로 켜지고 그 사람이 가려는 방향으로 움직인다.

어떤 사람이 양방향 에스컬레이터에 도착했을 때 에스컬레이터가 이미 그 사람이 가려는 방향으로 움직이고 있으면, 그 사람은 즉시 탑승한다. 반대로 가려는 방향의 반대 방향으로 움직이고 있으면, 에스컬레이터가 멈출 때까지 기다렸다가 그제야 탑승한다. 에스컬레이터는 매우 커서 여러 사람이 동시에 탑승할 수 있다.

양방향 에스컬레이터에는 아마도 양자역학적 효과(아니면 그냥 우연)와 관련된 매우 이상한 성질이 하나 있다. 에스컬레이터가 멈추는 바로 그 순간에 도착하는 사람은 아무도 없다.

이제 양방향 에스컬레이터의 동작을 알았으니, 이를 시뮬레이션하는 작업을 맡게 된다. N명의 사람에 대한 정보, 즉 에스컬레이터에 도착하는 시각과 가려는 방향이 주어질 때, 에스컬레이터가 마지막으로 멈추는 시각을 구해야 한다.

입력

첫째 줄에는 양방향 에스컬레이터를 이용할 사람의 수를 나타내는 정수 N (1 ≤ N ≤ 10^4)이 주어진다.

다음 N개의 줄에는 각각 두 정수 t_i와 d_i (1 ≤ t_i ≤ 10^5, 0 ≤ d_i ≤ 1)가 주어진다. t_i는 i번째 사람이 에스컬레이터에 도착하는 시각이고, d_i는 그 사람이 가려는 방향이다. d_i가 0이면 왼쪽 끝에서 오른쪽 끝으로 가려는 것이고, d_i가 1이면 오른쪽 끝에서 왼쪽 끝으로 가려는 것이다. 모든 t_i 값은 서로 다르며 오름차순으로 주어진다.

출력

마지막 사람이 양방향 에스컬레이터에서 내리는 시각을 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    5 0
    8 0
    13 0
    
    예상 출력
    23
    
  2. 예제 2

    입력
    3
    5 0
    7 1
    9 0
    
    예상 출력
    29
    
  3. 예제 3

    입력
    3
    5 0
    10 1
    16 0
    
    예상 출력
    35