만드는 중입니다

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

사회적 거리두기

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

요약
트리 모양의 건물에서 학생 k명을 서로 인접하지 않게 유지하면서 컴퓨터가 있는 방으로 옮기는 순서를 찾고, 불가능하면 NO를 출력합니다.
난이도

어려움10점 중 8점

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

문제

학생에 대해 두 가지를 말할 수 있다. 학생들은 필요 이상으로 일하기를 싫어하고, 다른 사람과 거리를 두는 것을 좋아한다. 전자 때문에 학과 건물이 트리 구조를 이루는 것으로 보인다(간접적으로 연결된 두 방 사이에 복도를 놓는 것은 시간 낭비이기 때문이다). 후자 때문에 학생들은 전염병이 유행하는 지금 오히려 잘 지낸다. 이제 사회적 거리두기는 더 이상 선택이 아니라 규범이다.

그러나 트리 구조의 건물과 다른 사람과의 거리두기는 잘 맞지 않는다. 현재 일부 방에 kk명의 학생이 있으며, 거리두기 정책에 따라 방마다 최대 한 명만 있다. 또한 복도로 직접 연결된 두 방에는 학생이 함께 있지 않다.

ICPC 대회가 곧 시작되어 학생들이 학과 곳곳에 흩어진 컴퓨터 자리로 서둘러 간다. 컴퓨터는 학생 수와 같은 kk대이며 일부 방에 놓여 있다. 한 방에 컴퓨터가 두 대 있지 않고, 직접 연결된 두 방이 모두 컴퓨터를 가지고 있지도 않다. 학생들은 컴퓨터를 자유롭게 배정받을 수 있지만, 언제나 거리두기를 지켜야 한다. 그래서 학생들을 자리로 옮기는 일은 까다롭고, 불가능할 수도 있다.

당신은 냉정한 ICPC 운영자이자 최고의 킬러 문제셋을 만든 출제자다. 학생들이 허둥지둥 뛰어다니는 모습을 보며 끔찍한 사실을 깨닫는다. 학생들이 제시간에 방에 도착하지 못하면 대회에 참가할 수 없고, 풀 수 없는 문제를 준비하느라 한 노력이 모두 헛수고가 된다. 이를 그냥 둘 수는 없다.

학생과 컴퓨터의 현재 위치가 주어졌을 때, 모든 학생을 컴퓨터가 있는 방으로 옮기는 작업 순서를 설계하라. 각 작업은 학생 한 명을 인접한 방으로 옮긴다. 매 작업 후에 두 학생이 같은 방이나 인접한 방에 있어서는 안 된다. 방의 수를 nn이라 할 때, 대회 시작 전까지 최대 4n24n^2번 이동할 수 있다. 작업이 불가능할 수도 있지만, 확인하는 방법은 하나뿐이다.

입력

입력의 첫 줄에 테스트 케이스의 수 zz (1≤z≤100 0001 \leq z \leq 100\,000)가 주어진다. 각 테스트 케이스가 이어진다.

테스트 케이스의 첫 줄에는 학과의 방 수 nn (2≤n≤2 0002 \leq n \leq 2\,000)이 주어진다.

다음 n−1n - 1개의 줄에는 복도로 연결된 두 방 uiu_i, viv_i (1≤ui≠vi≤n1 \leq u_i \neq v_i \leq n)가 한 줄에 하나씩 주어진다. 복도는 트리(연결되어 있고 사이클이 없는 그래프)를 이룬다.

다음 줄에는 학생 수 kk (1≤k<n1 \leq k < n)가 주어진다. 학생 수는 컴퓨터 수와 같다.

다음 줄에는 학생들의 초기 위치 s1,…,sks_1, \ldots, s_k (1≤s1<s2<⋯<sk≤n1 \leq s_1 < s_2 < \cdots < s_k \leq n)가 주어진다.

다음 줄에는 컴퓨터가 있는 방 c1,…,ckc_1, \ldots, c_k가 같은 형식으로 주어진다.

컴퓨터가 없는 방에 학생이 최소 한 명 있음이 보장된다.

모든 테스트 케이스의 n2n^2 합은 4⋅1074 \cdot 10^7을 넘지 않는다.

출력

각 테스트 케이스마다 거리두기를 지키면서 학생들을 컴퓨터가 있는 방으로 옮길 수 있으면 YES를, 없으면 NO를 출력한다. 가능한 경우에는 이어서 유효한 해를 하나 출력한다. 해는 이동 횟수 mm (1≤m≤4n21 \leq m \leq 4n^2)으로 시작하고, 이어서 mm개의 줄에 두 정수 aia_i, bib_i (1≤ai≠bi≤n1 \leq a_i \neq b_i \leq n)를 한 줄에 하나씩 쓴다. 이는 현재 방 aia_i에 있는 학생이 aia_i와 복도로 연결된 방 bib_i로 이동한다는 뜻이다.

해의 길이를 최소로 만들 필요는 없다.

예제1

  1. 예제 1

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