給定一棵包含 $N$ 個頂點的樹,頂點編號為 $1$ 到 $N$。樹的第 $i$ 條邊連接頂點 $u_i$ 和 $v_i$。初始時,對於每個 $i$($1 \le i \le N$),若頂點 $i$ 滿足 $A_i = 1$,則其上有一顆石子;若 $A_i = 0$,則沒有石子。
你可以重複執行以下操作:
- 選擇一條尚未選過的邊,且該邊恰好有一個端點上有石子,然後將這顆石子移動到該邊的另一個端點。
請判斷是否能夠恰好執行 $N - 1$ 次操作。如果可以,請輸出選擇邊的順序。
輸入格式
輸入包含一個或多個測試資料。輸入的第一行包含一個整數 $T$($1 \le T \le 10^5$),代表測試資料的數量。接下來是 $T$ 筆測試資料的描述,每筆測試資料的格式如下。
$$ \begin{aligned} &N \\ &u_1 \ v_1 \\ &u_2 \ v_2 \\ &\vdots \\ &u_{N-1} \ v_{N-1} \\ &A_1 \ A_2 \ \ldots \ A_N \end{aligned} $$
第一行包含一個整數 $N$($2 \le N \le 2 \times 10^5$),代表頂點的數量。
對於每個 $i$($1 \le i \le N - 1$),接下來的第 $i$ 行(共 $N - 1$ 行)包含兩個以空格分隔的整數 $u_i$ 和 $v_i$($1 \le u_i, v_i \le N$),代表第 $i$ 條邊連接頂點 $u_i$ 和 $v_i$。保證給定的圖是一棵樹。
最後一行包含 $N$ 個以空格分隔的整數 $A_1, A_2, \ldots, A_N$($A_i \in \{0, 1\}$)。$A_i$ 代表初始時頂點 $i$ 上是否放有石子。
所有測試資料的 $N$ 總和不會超過 $2 \times 10^5$。
輸出格式
對於每筆測試資料,按如下格式輸出答案。
如果無法恰好執行 $N - 1$ 次操作,則在一行中輸出 No。
如果可以,則在第一行輸出 Yes,接著在第二行按如下格式輸出邊的序列:
$$ e_1 \ e_2 \ \ldots \ e_{N-1} $$
其中,$e_k$($1 \le e_k \le N - 1$)代表第 $k$ 次操作中所選擇的邊的編號。如果存在多個合法的序列,輸出任意一個即可。
範例
輸入格式 1
3 5 1 2 2 3 2 4 2 5 1 1 1 0 0 2 1 2 0 0 9 1 2 2 3 2 4 4 5 4 6 6 7 6 8 6 9 0 0 1 0 1 1 0 1 1
輸出格式 1
Yes 3 2 4 1 No Yes 6 7 4 2 1 3 5 8