Feladat: S.56 Korcsoport: - Nehézségi fok: -
Füzet: 2010/október, 421. oldal  PDF  |  MathML 
Témakör(ök): Nehezebb feladat

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Adott egy város úthálózata a csomópontokkal (kereszteződésekkel), illetve az ezeket összekötő kétirányú utcákkal. Egy olyan városnéző busszal szeretnénk bejárni a város összes csomópontját (az utcák közül nem kell mindet bejárni), amelynek elromlott a hátramenete, így nem tud megfordulni, azaz nem térhet vissza abba a csomópontba, amelyikből éppen most jött (egyébként bármely utcán, illetve csomóponton bárhányszor járhatunk).
Írjunk programot, amely beolvassa a standard bemenetről a város úthálózatának leírását, és meghatározza a csomópontoknak egy olyan sorozatát, amelyben szerepel minden csomópont, az egymás utáni csomópontok közvetlen összeköttetésben állnak, és nincs benne ,,megfordulás'', azaz olyan három egymás utáni csomópont, amelyekből az első és a harmadik megegyezik. Feltehetjük, hogy bármely két csomópont közt legfeljebb egy utca vezet, hogy a város úthálózata összefüggő (azaz a város bármely pontjából bármely pontjába eljuthatunk), továbbá hogy nincs a városban zsákutca, azaz nincs olyan csomópont, amihez csak egy utca kapcsolódik.
A bemenet szerkezete a következő: az első sorban két, szóközzel elválasztott egész szám, a város csomópontjainak (3N10000) és az utcáinak (3M1000000) száma található. A következő M sor mindegyikében, szóközzel elválasztva, egy-egy utca két végpontjának Xi, Yi sorszáma szerepel (1XiYiN).
A standard kimenet egyetlen sorába írjuk ki a feladat feltételeinek megfelelő csomópontsorozatot.

 
 

Beküldendő a feladat megoldását tartalmazó forrás és projektállományok (az .exe és más a fordító által generált kiegészítő állományok nélkül), valamint a megoldás menetét röviden bemutató dokumentáció (s56.txt, s56.pdf, ...) egy tömörített mappában (s56.zip).