만드는 중입니다

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

끝없는 길

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

요약
길이 10^9인 선분 위에 N개의 구간이 주어집니다. 아직 덮이지 않은 길이가 가장 짧은 구간의 멤버를 매번 골라 심는 순서를 출력합니다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 그리디, 구간
정답자
아직 제출이 없습니다

문제

KAIST 학생들은 캠퍼스 밖으로 나가면 대개 끝없는 길(Endless Road)이라 불리는 직선 도로를 따라 걷는다. 풍경이 단조로운 탓에 많은 학생이 이 길이 끝이 없다고 느낀다. 끝없는 길은 길이가 10910^9인 직선으로 모델링한다. 이 직선 위의 위치는 실수 x∈[0,109)x \in [0, 10^9)로 나타낸다.

RUN@KAIST 회원들은 길을 더 생기 있게 만들려고 여러 색깔의 꽃을 심기로 했다. 회원은 NN명이며 11번부터 NN번까지 번호가 붙어 있다. 지난 정기 모임에서 각 회원 ii에게 공백이 아닌 구간 [Li,Ri)[L_i, R_i)가 배정되었다. 이 구간은 Li≤x<RiL_i \le x < R_i를 만족하는 모든 위치 xx를 포함한다.

번호가 큰 회원일수록 동아리에서 맡은 책임이 크다. 그래서 번호가 커질수록 구간의 길이가 줄어들지 않는다. 즉, 1≤i<j≤N1 \le i < j \le N인 모든 i,ji, j에 대해 Ri−Li≤Rj−LjR_i - L_i \le R_j - L_j이다.

꽃 심기는 NN번의 차례로 진행된다. 각 차례마다 아직 선택되지 않은 회원 한 명이 꽃을 심는다. 선택된 회원은 배정된 구간 [Li,Ri)[L_i, R_i)에 꽃을 심되, 다른 회원이 이미 꽃을 심은 위치는 제외한다.

다음 회원은 다음 기준으로 고른다. 그 시점에 심을 꽃의 양이 가장 적은 회원이 먼저 간다. 꽃의 양은 회원이 새로 꽃을 심는 구간 부분의 길이이며, 이 길이는 0일 수도 있다. 여러 회원의 양이 같으면 번호가 가장 작은 회원이 먼저 간다.

재웅은 꽃 심기 일정을 발표해야 한다. 위 규칙에 따라 NN명의 회원이 꽃을 심는 순서를 구하라.

입력

첫째 줄에 정수 NN이 주어진다. 이어지는 NN개의 줄에는 각각 정수 LiL_i와 RiR_i가 주어진다.

출력

공백으로 구분된 정수 NN개를 출력한다. ii번째 정수는 ii번째 차례에 꽃을 심는 회원의 번호이다.

제한

1≤N≤250 0001 \leq N \leq 250\,000. 0≤Li<Ri≤1090 \le L_i < R_i \le 10^9. 1≤i<j≤N1 \le i < j \le N인 모든 i,ji, j에 대해 Ri−Li≤Rj−LjR_i - L_i \leq R_j - L_j. 모든 구간은 서로 다르다. 즉, 1≤i<j≤N1 \le i < j \le N인 모든 i,ji, j에 대해 (Li,Ri)≠(Lj,Rj)(L_i, R_i) \neq (L_j, R_j)이다.

예제2

  1. 예제 1

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

    입력
    4
    3 7
    10 14
    1 6
    6 11
    
    예상 출력
    1 3 2 4