== include(page="template/taskheader" task_id="droom") ==
Poveste şi cerinţă...
Excentricul Primar Droom a implementat un nou sistem de drumuri ciudat in municipiul Suieb. Municipiul poate fi reprezentat drept un graf neorientat cu $N$ (1 <= N <= 20 ) noduri si $M$ (M<=10.000) muchii. Se retine ca pot exista si muchii paralele. Intai numara zilele consecutiv, incepand cu ziua $0$. In ziua $0$, el face toate drumurile cu sens unic, intr-o directie data. De asemenea, defineste f(i) drept suma modulo 2 a cifrelor lui $i$. Intr-o zi $i$, daca $f(i) = 0$, atunci drumurile sunt cu sens unic, in aceeasi directie ca in ziua $0$, pe cand, daca $f(i) = 1$, atunci drumurile sunt cu sens unic, in directie opusa. De asemenea, acesta mai introduce o noua regula: poti trece doar o data pe zi de la o intersectie la alta – desigur, folosind drumurile regulamentare, adica in directia specifica zilei date. Se garanteaza ca acest lucru este posibil in orice intersectie, in orice zi. Gabitza, un cetatean inocent al municipiului, isi pune intrebarea: dandu-se $Q$( Q <= 200 ), trei valori $a$, $b$, $c$, ($) si presupunand ca Gabitza este la intersectia a[~i~] in ziua 0, in cate moduri poate Gabi sa ajunga la intersectia b[~i~] in ziua c[~i~], modulo $10^9^+7$?
h2. Date de intrare
Fişierul de intrare $droom.in$ ...
Fişierul de intrare $droom.in$ va contine pe prima linie un numar $T$, numarul de teste.
Fiecare test este format din cateva randuri. Primul rand contine doua numere naturale $N$, $M$. Urmatoarele M randuri contin perechi de numere $a$ $b$, reprezentand ca exista un drum intre intersectiile $a$ $b$ si ca drumul este cu sens unic de la $a$ spre $b$, in ziua $0$. Urmatorul rand contine $Q$. Urmatoarele Q randuri contin valorile a[~i~], b[~i~], c[~i~], in ordine.
h2. Date de ieşire
În fişierul de ieşire $droom.out$ ...
În fişierul de ieşire $droom.out$ va contine raspunsurile pentru fiecare test, in ordine. La fiecare test, se va afisa raspunsul pentru fiecare cerinta in ordine, pe randuri separate.
h2. Restricţii
* $... ≤ ... ≤ ...$
* $1 ≤ N ≤ 20$
* $M ≤ 10.000$
* $Q ≤ 200$
* $1 ≤ a[~i~],b[~i~] ≤ N$
* $0 ≤ c[~i~] ≤ 10^18^$
* $T ≤ 50$
h2. Exemplu
table(example). |_. droom.in |_. droom.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
| 2
3 7
3 2
3 2
2 1
1 3
3 2
1 3
2 1
3
1 3 7
1 3 6
1 3 6
3 8
1 2
1 2
1 3
2 3
3 2
2 1
3 1
3 1
3
3 2 8
3 2 4
2 1 2
| 1
0
0
85
5
1
|
h3. Explicaţie
...
== include(page="template/taskfooter" task_id="droom") ==