On vous donne un arbre à $N$ sommets numérotés de $1$ à $N$. La $i$-ème arête de l'arbre relie les sommets $u_i$ et $v_i$. Initialement, pour chaque $i$ ($1 \le i \le N$), le sommet $i$ contient une pierre si $A_i = 1$ et aucune pierre si $A_i = 0$.
Vous pouvez effectuer de manière répétée l'opération suivante :
- Choisir une arête non encore choisie ayant une pierre sur exactement l'une de ses extrémités, et déplacer cette pierre vers l'autre extrémité.
Déterminez s'il est possible d'effectuer cette opération exactement $N - 1$ fois. Si c'est possible, affichez l'ordre dans lequel les arêtes sont choisies.
Entrée
L'entrée contient un ou plusieurs cas de test. La première ligne de l'entrée contient un entier $T$ ($1 \le T \le 10^5$), qui est le nombre de cas de test. Les descriptions des $T$ cas de test suivent, chacune dans le format suivant.
$$ \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} $$
La première ligne contient un entier $N$ ($2 \le N \le 2 \times 10^5$) représentant le nombre de sommets.
Pour chaque $i$ ($1 \le i \le N - 1$), la $i$-ème des $N - 1$ lignes suivantes contient deux entiers $u_i$ et $v_i$ ($1 \le u_i, v_i \le N$) séparés par une espace, indiquant que la $i$-ème arête relie les sommets $u_i$ et $v_i$. Il est garanti que le graphe donné est un arbre.
La dernière ligne contient $N$ entiers $A_1, A_2, \ldots, A_N$ ($A_i \in \{0, 1\}$) séparés par des espaces. $A_i$ indique si une pierre est initialement placée sur le sommet $i$.
La somme de $N$ sur l'ensemble des cas de test ne dépasse pas $2 \times 10^5$.
Sortie
Pour chaque cas de test, affichez la réponse comme suit.
S'il est impossible d'effectuer l'opération exactement $N - 1$ fois, affichez No sur une seule ligne.
Si c'est possible, affichez Yes sur la première ligne, suivi de la séquence d'arêtes sur la deuxième ligne au format suivant :
$$ e_1 \ e_2 \ \ldots \ e_{N-1} $$
Ici, $e_k$ ($1 \le e_k \le N - 1$) représente l'indice de l'arête choisie lors de la $k$-ème opération. S'il existe plusieurs séquences valides, vous pouvez afficher n'importe laquelle d'entre elles.
Exemples
Entrée 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
Sortie 1
Yes 3 2 4 1 No Yes 6 7 4 2 1 3 5 8