關於學生,有兩件事值得一提:他們討厭做不必要的工作,並且喜歡與他人保持距離。前者大概就是為什麼系館會形成一棵樹(在兩個間接相連的房間之間建造走廊會是浪費時間);後者則是為什麼他們在當前的疫情下反而過得更好。現在,社交距離不再是一種奢侈,而是常態!
然而,樹狀結構的建築與保持社交距離並不完全相容。目前,有些房間裡有學生,且由於社交距離政策,每個房間最多只能有一名學生。此外,沒有兩名學生居住在由走廊直接相連的房間中。
ICPC 比賽即將開始,學生們急忙前往散佈在系館各處的電腦座位。這裡有 $k$ 台電腦——與學生人數相同——位於某些房間中;此外,為了確保社交距離,沒有兩台電腦位於同一個房間,也沒有兩間直接相連的房間同時擁有電腦。學生們可以自行分配電腦,但他們必須始終保持社交距離——因此,將他們引導到該去的地方可能會很棘手,甚至是不可能的。
你是一位冷酷無情的 ICPC 組織者,也是這套終極難題的創作者。看著學生們驚慌失措地跑來跑去,你意識到一個可怕的事實:如果學生們沒有及時到達他們的房間,他們將無法參加比賽,那麼準備這些無法解決的難題所付出的所有努力都將付諸東流!你絕對不能允許這種情況發生。
給定學生目前的所在位置以及電腦的位置,請設計一個操作序列,將每位學生移動到有電腦的房間。每一次操作都應將一名學生移動到相鄰的房間;在每次操作後,不得有兩名學生位於同一個房間或兩個相鄰的房間。比賽開始前剩餘的時間允許你執行最多 $4n^2$ 次移動,其中 $n$ 是房間的數量。這項任務可能是不可能的,但只有一種方法可以驗證……
輸入格式
輸入的第一行包含測試案例的數量 $z$ ($1 \le z \le 100\,000$)。接著是各個測試案例的描述。
每個測試案例的第一行包含一個整數 $n$ ($2 \le n \le 2\,000$) —— 系館的房間數量。
接下來的 $n - 1$ 行,每行包含兩個整數 $u_i, v_i$ ($1 \le u_i \neq v_i \le n$) —— 由走廊相連的兩個房間。保證所描述的走廊形成一棵樹(一個沒有環的連通圖)。
下一行包含一個整數 $k$ ($1 \le k < n$) —— 學生(以及電腦)的數量。
下一行包含整數 $s_1, \dots, s_k$ ($1 \le s_1 < s_2 < \dots < s_k \le n$) —— 學生們的初始位置。
下一行包含整數 $c_1, \dots, c_k$,格式相同,表示擁有電腦的房間。
保證至少有一名學生位於沒有電腦的房間中。
所有測試案例的 $n^2$ 總和不超過 $4 \cdot 10^7$。
輸出格式
對於每個測試案例,如果可以在保持社交距離的情況下將學生移動到有電腦的房間,請輸出 “YES”(不含引號),否則輸出 “NO”。若為前者,請在接下來的行中列印任何有效的解決方案。
解決方案描述應以一個整數 $m$ ($1 \le m \le 4 \cdot n^2$) 開頭,表示移動次數。接著應有 $m$ 行,每行描述一次移動,包含兩個整數 $a_i, b_i$ ($1 \le a_i \neq b_i \le n$),表示目前位於房間 $a_i$ 的學生應移動到與 $a_i$ 由走廊相連的房間 $b_i$。
你不需要最小化解決方案的長度。
範例
輸入 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
輸出 1
YES 4 1 3 4 2 2 5 3 1 NO