Se dă un arbore cu noduri, numerotate de la la .
Arborele se va transforma astfel: la oricare etapă fiecare nod de gradul diferit de rădăcină din arborele actual se înlocuiește cu un arbore identic cu cel dat inițial, iar la următoarea etapă procedeul se va relua pentru arborele obținut, formându-se astfel un arbore infinit. În următoarele imagini se prezintă un exemplu de arbore dat inițial, arborele obținut după prima etapă de prelungire a frunzelor și arborele obținut după etape de prelungire a frunzelor.
Cerinţe
Să se determine câte noduri se află la distanță de rădăcina arborelui infinit.
Date de intrare
Pe prima linie a fișierului de intrare tairos.in
se va afla un număr natural , reprezentând numărul de noduri din arborele dat inițial. Pe a doua linie se va afla numărul întreg , cu semnificația de mai sus, iar fiecare dintre următoarele linii conține câte numere întregi și cu semnificația că în arborele dat inițíal există muchia .
Date de ieşire
Fișierul de ieșire tairos.out
va conține un singur număr, și anume restul împărțirii numărului de noduri cerut la numărul .
Restricţii și precizări
- ;
- ;
- Un arbore este un graf neorientat, conex și fără cicluri.
- Distanța dintre două noduri și ale unui arbore este egală cu numărul de muchii ale unui lanț cu extremitățile în nodurile și , lanț format din noduri distincte.
- Rădăcina va fi considerată ca fiind nodul ;
- Pentru teste în valoare de puncte avem ;
- Pentru teste în valoare de alte puncte răspunsul este ;
- În concurs se acordau puncte din oficiu, aici ultimele teste valorează cu puncte în plus.
Exemplul 1
tairos.in
4
3
1 2
3 1
3 4
tairos.out
5
Explicație
Arborele dat în fișierul de intrare are noduri. Se cere numărul nodurilor aflate la distanța față de rădăcină.
Urmărind imaginile din exemplele de mai sus, la distanța avem următoarele noduri: , , , și
Exemplul 2
tairos.in
5
3
1 2
3 1
3 5
4 3
tairos.out
8
tairos.in
5
25
2 1
2 3
1 4
5 2
tairos.out
33554432