Cerință
Se dă un graf neorientat conex cu noduri și muchii. Inițial, fiecare nod din acest graf are asociată o stare, notată cu . Spunem că dacă este , atunci nodul este supărat, iar dacă este , atunci nodul este fericit. Mood Swinger-ul va alege un drum prin graf, iar, pentru fiecare nod din acest drum, își va face hazul. Când Mood Swinger-ul își face hazul în nodul , acesta schimbă starea tuturor vecinilor lui , dar, în mod complet surprinzător și neintuitiv, nu și a nodului .
De vreme ce Mood Swinger-ul este un Grinch nenorocit, el vrea să găsească un drum în graf, astfel încât, la final, fiecare nod din graf să fie nefericit (inclusiv nodul în care se află Mood Swinger-ul).
Avem totuși, oarecum, încredere în tine că tu nu ești un Grinch și că ne poți pregăti pentru așa un necaz... Acestea fiind spuse, trebuie să găsești un drum care începe din nodul de lungime cel mult pe care l-ar putea parcurge Mood Swinger-ul, astfel încât starea tuturor nodurilor din graf să fie la final.
Prin drum de lungime într-un graf , înțelegem un șir ordonat de noduri, , astfel încât , pentru . Observăm că acest drum poate să repete noduri, respectiv muchii.
Date de intrare
Pe prima linie se găsesc numerele și . Pe a doua linie găsim un șir binar de lungime , reprezentând stările inițiale ale nodurilor. Elementele acestui șir sunt despărțite prin spații. Pe următoarele linii găsim descrierea muchiilor din graf. Fiecare dintre aceste linii conține câte două numere, și , separate printr-un spațiu, indicând faptul că muchia apare în graf.
Date de ieșire
Dacă nu este posibil să găsim un astfel de drum, se va afișa . Altfel, prima linia a fișierului de ieșire va conține numărul (), reprezentând lungimea drumului. Pe a doua linie se vor găsi numere din intervalul , reprezentând nodurile drumului, în ordinea în care vor fi parcurse de către Mood Swinger. Amintim că drumul va începe din nodul .
Dacă există mai multe soluții, se poate afișa oricare.
Restricții și precizări
- ;
- ;
- pentru de la la ;
- Graful nu va conține muchii de forma și nu vor exista mai multe muchii între aceeași pereche de noduri;
- Pentru fiecare test, se acordă din punctaj dacă se determină corect dacă există sau nu soluție;
- Pentru teste în valoare de de puncte, graful descris este un arbore de tip stea.
- Pentru teste în valoare de alte puncte, ;
- Pentru teste în valoare de alte de puncte, .
Exemplul 1
stdin
3 3
0 1 0
0 1
1 2
0 2
stdout
2
0 2
Explicație
Pentru graful de mai sus, putem alege drumul . După ce Mood Swinger-ul își va face hazul în nodul , șirul devine . După ce Mood Swinger-ul își va face hazul în nodul , șirul devine .
Exemplul 2
stdin
3 3
1 1 0
0 1
1 2
0 2
stdout
-1
Explicație
Pe acest caz, pare că Grinch-ul va fi cel nefericit, pentru ca nu putem găsi un drum păcătos.