Susi și Țuți tocmai au invatat despre arbori in informatica! Aceștia sunt grafuri neorientate conexe aciclice; cu alte cuvinte, un arbore de noduri are muchii și se poate ajunge din orice nod în oricare alt nod folosind un drum simplu unic. Un drum simplu este un drum care nu parcurge o muchie mai mult de o data.
Deoarece se plictisesc, Susi și Țuți s-au hotarat sa joace un joc pe un arbore cu noduri, unde fiecarui nod ii poate fi atribuit un pondere si doresc sa satisfaca constrangeri de urmatorul tip:
- Susi spune că -ul pe biti al ponderilor de pe drumul simplu de la nodul la nodul este .
Cerință
Se dau astfel de scenarii. Țuți trebuie să determine pentru fiecare dintre ele daca exista o atribuire a valorilor fiecarui nod in asa fel incat sa fie satisfacute toate constrangerile.
Date de intrare
Pe prima linie se va afla numarul natural , urmat de scenarii, dupa cum sunt descrise mai jos.
Pe prima linie a scenariului se vor afla numerele naturale si , separate prin spatii.
Pe fiecare dintre urmatoarele linii ale scenariului se va afla cate o pereche de numere naturale nenule si , separate prin spatii, reprezentand o muchie intre nodurile si .
Pe fiecare dintre urmatoarele linii ale scenariului se va afla cate o pereche de numere naturale si , reprezentand una dintre constrangerile lui Susi.
Date de ieșire
Se va afisa DA sau NU pe o singura linie, pentru fiecare scenariu, in functie de daca exista o atribuire a valorilor fiecarui nod in asa fel incat sa fie satisfacute toate constrangerile.
Restricții și precizări
- Definim -ul intre si , notat cu numarul obtinut din bitii comuni ai lui si . De exemplu, daca si , atunci .
- Definim drumul simplu dintre nodurile si ca fiind succesiunea de noduri , astfel incat , exista muchiile pentru orice , fiecare muchie este parcursa cel mult o data.
- Daca pe un nod exista doua sau mai multe constrangeri contradictorii, atunci NU exista solutie.
- Scenariile din exemplu sunt separate printr-un newline, dar in teste nu sunt.
- Pentru teste in valoare de puncte:
- Pentru alte teste in valoare de puncte:
- Pentru alte teste in valoare de puncte: Arborele este un lant de forma ;
- Pentru alte teste in valoare de puncte: Arborele este un lant de forma ;
- Pentru alte teste in valoare de puncte: Arborele este un lant de forma ;
- Pentru alte teste in valoare de puncte: Arborele este un lant de forma ;
- Pentru alte teste in valoare de de puncte:
- Pentru alte teste in valoare de de puncte: nicio restrictie suplimentara
Exemplul 1
treebits.in
4
3 2
1 2
2 3
2 5
3 4
6 4
1 2
1 3
3 4
3 5
3 6
1 100
2 96
3 36
4 4
6 4
1 2
1 3
3 4
3 5
3 6
1 100
2 95
3 36
4 4
2 2
1 2
1 0
2 1
treebits.out
DA
DA
NU
NU
Explicație
In primul scenariu, putem atribui nodului valoarea , nodului valoarea , iar nodului valoarea . Atunci, restrictiile si sunt satisfacute. De asemenea, ar fi putut lua si valorile , , , , , etc.

In al doilea scenariu, putem atribui nodului valoarea , nodului valoarea , nodului valoarea , nodului valoarea , nodului valoarea , iar nodului valoarea . Atunci, restrictiile , , si sunt satisfacute. De asemenea, nodurile si pot lua orice valoare.

In al treilea scenariu, nu exista solutie pentru care .
In al patrulea scenariu, si nu are solutie.