송도고 레일 정비 사업

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

요약
각 레일의 시작점에서 출발한 물건이 우선순위가 낮은 교차 레일로 갈아타며 이동할 때 최종적으로 도착하는 레일 번호를 구한다.
난이도

어려움10점 중 8점

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

문제

송도고의 부지는 너무 커서, 큰 물건을 운반하기 까다롭다. 이를 해결하기 위해 진서는 송도고의 지하에 동서 방향으로 뻗어 있는 직선 레일들과 남북 방향으로 뻗어 있는 직선 레일들을 설치하였다. 하지만 공사 후에 설계도를 잃어버리는 바람에 어떤 레일의 시작점에 물건을 놓으면 최종적으로 어디에 운반되는지 알 수 없게 되었다. 다행히 진서는 운반 시설이 동서-레일 nn개와 남북-레일 mm개로 어떻게 이루어졌는지와 각 레일의 위치, 우선순위, 운반 방향을 기억하고 있다.

구체적으로, 각 ii번 레일이 갖는 우선순위 p_ip\_i와 운반 방향 d_id\_i가 주어진다. 1≤i≤n1\le i\le n이라면 해당 레일은 동서 방향으로 뻗어있고, n+1≤i≤n+mn+1\le i\le n+m이라면 해당 레일은 남북 방향으로 뻗어있다. 레일의 우선순위 p_ip\_i는 11 이상 n+mn+m 이하의 서로 다른 정수이다. 각각의 동서-레일은 모든 남북-레일과 교차하고, 각각의 남북-레일은 모든 동서-레일과 교차한다. 동서-레일끼리 교차하거나, 남북-레일끼리 교차하는 경우는 없다.

다음은 동서-레일의 정보이다.

  • 동서-레일은 번호가 클수록 상대적으로 남쪽에 위치한다.
  • ii번의 동서-레일 위의 물건은 d_i=1d\_i=1이라면 서쪽으로 움직이고, d_i=2d\_i=2라면 동쪽으로 움직인다.
  • ii번의 동서-레일의 시작점은 d_i=1d\_i=1이라면 동쪽 끝, d_i=2d\_i=2라면 서쪽 끝이다.
  • ii번의 동서-레일 위에서 움직이던 물건은 우선순위 값이 더 작은, 즉 p_i>p_jp\_i>p\_j인 jj번의 남북-레일과의 교차점에 도달했을 때 그 즉시 jj번의 남북-레일로 옮겨탄다.

다음은 남북-레일의 정보이다.

  • 남북-레일은 번호가 클수록 상대적으로 동쪽에 위치한다.
  • ii번의 남북-레일 위의 물건은 d_i=1d\_i=1이라면 북쪽으로 움직이고, d_i=2d\_i=2라면 남쪽으로 움직인다.
  • ii번의 남북-레일의 시작점은 d_i=1d\_i=1이라면 남쪽 끝, d_i=2d\_i=2라면 북쪽 끝이다.
  • ii번의 남북-레일 위에서 움직이던 물건은 우선순위 값이 더 작은, 즉 p_i>p_jp\_i>p\_j인 jj번의 동서-레일과의 교차점에 도달했을 때 그 즉시 jj번의 동서-레일로 옮겨탄다.

각 레일의 시작점에 물건을 놓았을 때 물건이 최종적으로 도착하는 레일의 번호를 구하자!

입력

첫 번째 줄에는 두 정수 n,mn, m이 공백으로 구분되어 주어진다.

이어서 n+mn+m개의 각 i+1i+1번째 줄에는 두 정수 p_i,d_ip\_i,d\_i가 공백으로 구분되어 주어진다. (1≤i≤n+m)(1\le i\le n+m)

출력

n+mn+m개의 각 ii번째 줄에 ii번 레일의 시작점에 물건을 놓았을 때 물건이 최종적으로 도착하는 레일의 번호를 출력한다.

제한

  • 1≤n,m≤100,0001\le n,m\le 100\\, 000.
  • 1≤p_i≤n+m1\le p\_i\le n+m.
  • d_i∈1,2d\_i\in\\{1,2\\}.
  • p_i≠p_jp\_i\neq p\_j (i≠j)(i\neq j).

예제1

  1. 예제 1

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