만드는 중입니다

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

Colorful Village

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

요약
트리 위의 2n개 집에 각 색이 두 집씩 있을 때, 색마다 한 집을 골라 연결된 n개 집의 집합을 찾거나 없으면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
트리, 그래프, DFS
정답자
아직 제출이 없습니다

문제

Colorful Village는 인기 있는 관광지이다. 이 마을에는 1번부터 2n번까지 번호가 붙은 집이 2n채 있다. 각 집은 1번부터 n번까지 번호가 붙은 n가지 색 중 하나로 칠해져 있다. 각 색은 정확히 두 집에 칠해져 있다.

Colorful Village에는 2n-1개의 양방향 도로가 있다. 각 도로는 서로 다른 두 집을 잇고, 이 도로들을 따라 어느 집에서든 다른 모든 집으로 갈 수 있다.

Catherine이 Colorful Village를 여행하려고 한다. 시간이 부족해서 색마다 정확히 한 집씩, 총 n채의 집으로 이루어진 집합 S를 방문하려고 한다. 집 사이를 이동해야 하므로 이 집합은 연결되어 있어야 한다. 즉, S에 속한 임의의 집에서 S에 속한 다른 임의의 집으로 도로를 따라 갈 수 있어야 하며, 이동 중에는 S에 속한 집만 지나야 한다.

Catherine을 도와 색마다 한 집씩 골라 연결된 집합 S를 n채 찾거나, 그러한 S가 없다고 보고하자.

입력

첫 줄에 테스트 케이스의 개수 tt (1≤t≤1051 \le t \le 10^5)가 주어진다. 이어서 테스트 케이스들이 주어진다.

각 테스트 케이스의 첫 줄에는 정수 nn (1≤n≤1051 \le n \le 10^5) 하나가 주어진다.

둘째 줄에는 2n2n개의 정수 c1,c2,…,c2nc_1, c_2, \ldots, c_{2n}이 주어진다. 이는 각 집의 색이다 (1≤ci≤n1 \le c_i \le n). 이 줄에서 11부터 nn까지의 모든 정수는 정확히 두 번씩 나타난다.

이어지는 2n−12n-1개의 줄 중 ii번째 줄에는 ii번째 도로가 잇는 두 집 uiu_i와 viv_i가 주어진다 (1≤ui,vi≤2n1 \le u_i, v_i \le 2n; ui≠viu_i \ne v_i).

모든 테스트 케이스의 nn의 합은 10510^5을 넘지 않는다는 것이 보장된다.

출력

각 테스트 케이스에 대해, 조건을 만족하는 집합이 존재하지 않으면 정수 −1-1 하나를 출력한다.

그렇지 않으면 순서와 상관없이 서로 다른 정수 nn개 s1,s2,…,sns_1, s_2, \ldots, s_n을 출력한다. 이들은 색마다 한 집씩 골라 만든 연결된 집합 S의 집 번호이다 (1≤si≤2n1 \le s_i \le 2n). 답이 여러 개이면 그중 아무것이나 출력해도 된다.

예제1

  1. 예제 1

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