== include(page="template/taskheader" task_id="ciclueuler") ==
Fie un 'multigraf':http://en.wikipedia.org/wiki/Multigraph $G = (V,E)$. Un ciclu al lui $G$ se numeste 'Eulerian':http://en.wikipedia.org/wiki/Eulerian_cycle daca viziteaza toate muchiile din $E$ exact o singura data. $G$ se numeste Eulerian daca admite un ciclu Eulerian.
h2. Cerinta
Fiind dat un multigraf $G = (V,E)$, determinati daca acesta este Eulerian. In caz afirmativ, gasiti un ciclu Eulerian al sau.
Poveste şi cerinţă...
h2. Date de intrare
Fisierul de intrare $ciclueuler.in$ contine pe prima linie numerele $N$ si $M$, reprezentand numarul nodurilor, respectiv numarul muchiilor din $G$. Pe urmatoarele $M$ linii se afla cate o pereche de numere $u v$, decriind o muchie a multigrafului, cu extremitatile in nodurile $u$ si $v$.
Fişierul de intrare $ciclueuler.in$ ...
h2. Date de iesire
h2. Date de ieşire
In fisierul de iesire $ciclueuler.out$ veti tipari $M$ numere $x{~1~} x{~2~} ... x{~M~}$, cu proprietatea ca $(x{~1~},x{~2~}), (x{~2~},x{~3~}), ..., (x{~M~},x{~1~})$ sunt muchiile ciclului Eulerian determinat, sau numarul -1, in cazul in care $G$ nu este Eulerian.
În fişierul de ieşire $ciclueuler.out$ ...
h2. Restrictii
h2. Restricţii
* $1 ≤ N ≤ 100 000$
* $1 ≤ M ≤ 500 000$
* Solutia nu este unica; orice solutie valida va primi punctajul maxim.
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example). |_. ciclueuler.in |_. ciclueuler.out |
| 4 6
1 2
1 3
2 2
2 3
3 4
3 4
| 1 2 2 3 4 3
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicaţie