돌 무게 재기

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

요약
등수가 정해진 돌을 순서대로 양팔 저울의 한쪽 접시에 올릴 때마다 모든 가능한 무게 배정에서 왼쪽이 무거움이 확정되는지 오른쪽이 확정되는지 알 수 없는지 판정합니다.
난이도

보통10점 중 7점

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

문제

승현이가 돌 NN개를 주워 무게가 커지는 순서로 늘어놓았다. 무게가 같은 돌은 없다. 가장 가벼운 돌이 1순위, 두 번째로 가벼운 돌이 2순위, 같은 식으로 가장 무거운 돌이 NN순위다.

승현이는 양팔 저울에 돌을 하나씩 올린다. 어떤 순서로 어느 접시에 올릴지는 미리 정해져 있다. 승현이는 돌의 실제 무게를 알려주지 않고 순위만 알려준다.

돌을 하나 올릴 때마다 저울이 어느 쪽으로 기우는지 판정하는 프로그램을 작성하라. 무게는 모두 양수이고 순위가 높은 돌이 순위가 낮은 돌보다 무겁다. 이 두 조건만 지키면 어떤 무게 배정도 가능하다. 가능한 모든 배정에서 1번 접시가 더 무거울 때만 저울이 1번 접시 쪽으로 기운다고 판정하고, 2번 접시도 마찬가지다. 배정에 따라 결과가 달라지거나 양쪽 무게가 같아질 수 있으면 어느 쪽이 더 무거운지 확실하지 않다고 판정한다.

입력

첫 줄에 돌의 개수 NN (1≤N≤1000001 \le N \le 100000)이 주어진다. 다음 NN개 줄에는 정수 RR (1≤R≤N1 \le R \le N)와 SS (1≤S≤21 \le S \le 2)가 주어진다. RR은 이번에 올릴 돌의 순위이고, SS는 돌을 올릴 접시 번호다. RR은 모두 다르므로 11부터 NN까지의 순위가 한 번씩 나온다.

출력

돌을 올릴 때마다 판정 결과를 한 줄에 하나씩 출력한다. 1번 접시가 더 무거우면 >, 2번 접시가 더 무거우면 <, 어느 쪽이 더 무거운지 확실하지 않으면 ?를 출력한다.

예제8

  1. 예제 1

    입력
    5
    1 2
    3 1
    2 1
    4 2
    5 1
    
    예상 출력
    <
    >
    >
    ?
    >
    
  2. 예제 2

    입력
    1
    1 1
    
    예상 출력
    >
    
  3. 예제 3

    입력
    1
    1 2
    
    예상 출력
    <
    
  4. 예제 4

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

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

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

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

    입력
    10
    5 1
    10 2
    1 1
    6 1
    2 2
    9 1
    3 2
    8 2
    4 1
    7 1
    
    예상 출력
    >
    <
    ?
    ?
    ?
    ?
    ?
    ?
    ?
    ?