Gegeben ist ein Baum mit $N$ Knoten, die von $1$ bis $N$ nummeriert sind. Die $i$-te Kante des Baums verbindet die Knoten $u_i$ und $v_i$. Zu Beginn enthält für jedes $i$ ($1 \le i \le N$) der Knoten $i$ genau einen Stein, falls $A_i = 1$ gilt, und keinen Stein, falls $A_i = 0$ gilt.
Du kannst die folgende Operation wiederholt ausführen:
- Wähle eine noch nicht gewählte Kante, bei der sich auf genau einem ihrer Endpunkte ein Stein befindet, und bewege diesen Stein zum anderen Endpunkt.
Bestimme, ob du diese Operation genau $N - 1$ Mal ausführen kannst. Falls dies möglich ist, gib die Reihenfolge aus, in der die Kanten gewählt werden.
Eingabe
Die Eingabe enthält einen oder mehrere Testfälle. Die erste Zeile der Eingabe enthält eine ganze Zahl $T$ ($1 \le T \le 10^5$), die Anzahl der Testfälle. Es folgen die Beschreibungen der $T$ Testfälle, jeweils im folgenden Format.
$$ \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} $$
Die erste Zeile enthält eine ganze Zahl $N$ ($2 \le N \le 2 \times 10^5$), die Anzahl der Knoten.
Für jedes $i$ ($1 \le i \le N - 1$) enthält die $i$-te der folgenden $N - 1$ Zeilen zwei durch ein Leerzeichen getrennte ganze Zahlen $u_i$ und $v_i$ ($1 \le u_i, v_i \le N$), was bedeutet, dass die $i$-te Kante die Knoten $u_i$ und $v_i$ verbindet. Es wird garantiert, dass der gegebene Graph ein Baum ist.
Die letzte Zeile enthält $N$ durch Leerzeichen getrennte ganze Zahlen $A_1, A_2, \ldots, A_N$ ($A_i \in \{0, 1\}$). Dabei gibt $A_i$ an, ob sich zu Beginn ein Stein auf Knoten $i$ befindet.
Die Summe von $N$ über alle Testfälle hinweg überschreitet nicht $2 \times 10^5$.
Ausgabe
Gib für jeden Testfall die Antwort wie folgt aus.
Falls es unmöglich ist, die Operation genau $N - 1$ Mal auszuführen, gib No in einer einzelnen Zeile aus.
Falls es möglich ist, gib in der ersten Zeile Yes aus, gefolgt von der Folge der Kanten in der zweiten Zeile im folgenden Format:
$$ e_1 \ e_2 \ \ldots \ e_{N-1} $$
Hierbei bezeichnet $e_k$ ($1 \le e_k \le N - 1$) den Index der in der $k$-ten Operation gewählten Kante. Falls es mehrere gültige Folgen gibt, kannst du eine beliebige davon ausgeben.
Beispiele
Eingabe 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
Ausgabe 1
Yes 3 2 4 1 No Yes 6 7 4 2 1 3 5 8