만드는 중입니다

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

우랄 고속도로

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

요약
각 지층의 수평 구간과 시추공에서 확인된 위에서 아래 층 순서를 바탕으로, 모든 시추공과 맞는 지층의 깊이 순서를 구합니다.
난이도

보통10점 중 7점

유형
위상 정렬, 구간, 그래프
정답자
아직 제출이 없습니다

문제

새 고속도로 우랄을 건설할 계획이다. 이 도로의 내구성은 그 아래에 놓인 암석층에 따라 달라진다. 지층이란 하나의 암석으로 이루어진 지질 구조체를 말한다.

계획된 도로 아래에는 수평인 지층 nn개가 있다. 지질 조사로 도로를 따라 각 지층이 시작하고 끝나는 지점을 알아냈다. 그러나 지층이 깊이 방향으로 어떤 순서로 놓였는지는 알아내지 못했다.

도로를 따라 정해진 지점에 수직 시추공이 뚫려 있다. 각 시추공은 그 지점 아래에 있는 위쪽 지층 여러 개를 관통한다. 각 시추공에 대해 뚫린 지층이 위에서 아래로 어떤 순서로 놓여 있는지 알고 있다. 시추공이 닿지 않은 지층은 시추공 바닥보다 아래에 있다.

주어진 자료와 모순되지 않는 지층의 깊이 순서를 구하는 프로그램을 작성하라.

입력

첫 줄에 지층 수 nn이 주어진다. 지층은 1부터 nn까지 임의의 순서로 번호가 붙어 있다. 다음 nn개 줄의 ii번째 줄에는 정수 lil_i와 rir_i(0≤li<ri≤1090 \leq l_i < r_i \leq 10^9)가 주어진다. 이는 도로 시작점에서 ii번째 지층이 시작하는 지점과 끝나는 지점까지의 거리이다.

다음 줄에는 시추공 수 mm이 주어진다. 이어지는 mm개 줄은 시추 결과를 나타낸다. 각 줄은 먼저 정수 xx(0≤x≤1090 \leq x \leq 10^9)와 kk(0≤k≤n0 \leq k \leq n)를 주는데, 이는 도로 시작점에서 시추공까지의 거리와 그 시추공에서 발견된 지층 수이다. 이어서 s1,s2,…,sks_1, s_2, \ldots, s_k가 위에서 아래로 놓인 순서대로 지층 번호를 준다. 시추공은 xx가 증가하는 순서로 주어진다.

해가 존재함이 보장된다.

출력

위에서 아래로 가능한 지층 순서를 나타내는 정수 p1,p2,…,pnp_1, p_2, \ldots, p_n을 출력한다. 각 번호는 정확히 한 번씩 나타나야 한다. 지층 pjp_j는 p1,…,pj−1p_1, \ldots, p_{j-1} 지층보다 위로 지나가거나 pj+1,…,pnp_{j+1}, \ldots, p_n 지층보다 아래로 지나가지 않아야 한다.

가능한 배치가 여럿이면 그중 아무거나 출력한다.

제한

  • 1≤n,m≤1051 \leq n, m \leq 10^5.
  • 모든 시추공에서 발견된 지층의 총 개수는 10610^6을 넘지 않는다.

힌트

문제의 그림은 예제에 해당한다.

예제에 대해서는 2 3 1 4도 올바른 답이다.

이 예제는 부분문제 1에 해당하지 않는다. 채점 대상이 되려면 부분문제 1만 풀더라도 예제를 통과해야 한다.

예제1

  1. 예제 1

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