만드는 중입니다

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

수열 만들기

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

요약
원형 칸에 2부터 N까지의 수를 차례로 채웁니다. 각 수는 기준 수의 칸에서 시계 방향으로 x번째 빈 칸에 들어가며, 1이 있는 칸부터 전체 수열을 출력합니다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 이분 탐색, 배열
정답자
아직 제출이 없습니다

문제

수열을 좋아하는 수민이는 11부터 NN까지의 정수로 수열을 만들려고 한다.

수열은 다음 규칙으로 만든다.

  1. 원형으로 NN개의 자리를 준비하고, 11을 미리 한 자리에 채워 넣는다.
  2. 22부터 NN까지의 수를 차례로 3번과 4번 과정을 반복하며 채워 넣는다.
  3. 이미 놓인 수 중 하나를 골라 pip_i로 정한다. 그리고 11 이상 10910^9 이하의 정수 중 하나를 골라 xix_i로 정한다.
  4. pip_i가 써진 자리에서 시계방향으로 돌았을 때 xix_i번째로 등장하는 빈자리를 찾아 그 자리에 수를 쓴다.
  5. 11이 쓰인 자리부터 시계방향으로 자리에 적힌 NN개의 수를 차례로 읽어 수열을 만든다.

입력

첫째 줄에 수열의 크기 NN이 주어진다. (2≤N≤300 0002 \leq N \leq 300\,000)

둘째 줄부터 NN째 줄까지 ii번째 줄에 기준이 되는 정수 pip_i와 이동해야 하는 칸 xix_i가 주어진다. (1≤pi≤i−11 \leq p_i \leq i-1, 1≤xi≤1091 \leq x_i \leq 10^9)

즉, pip_i가 적힌 자리에서 시계방향으로 돌았을 때 xix_i번째로 등장하는 빈자리에 수 ii를 적는다는 의미이다.

출력

NN개의 줄에 걸쳐 ii번째 줄에 수열의 ii번째 수를 출력한다.

예제1

  1. 예제 1

    입력
    8
    1 3
    2 5
    2 2
    3 2
    1 3
    6 2
    1 1
    
    예상 출력
    1
    3
    8
    2
    5
    4
    7
    6