Informatika gyűjtemény

NézetNyomtat

Kockavilág

Van $N$ $(1\leq K\leq 100)$ db azonos méretű kockánk (1, 2, ..., N számokkal jelöljük). A kockák vagy az asztalon vannak, vagy egy másik kocka tetején.
Van egy robotkar, ami képes fentről megfogni a legfelső kockát és azt egy másik kocka tetejére vagy az asztalra helyezni. A cél az, hogy a robotkar segítségével úgy mozgassuk a kockákat, hogy a 1. legyen legalul, a 2. az 1. kockán legyen, stb.

Bemenet

A KOCKA.BE bemeneti állomány első sorában N értéke van. A további N sorban található, hogy az adott kocka melyik másik kocka tetején van. Ez a szám 0, ha a kocka az asztalon van. Tehát az állomány i-edik sorában lévő szám azt adja meg, hogy az (i-1)-edik kocka melyik kocka tetején van. Ha egy kocka a másik tetején van, az csak úgy lehet, hogy az érintkező oldaluk teljesen fedik egymást.

Kimenet

A KOCKA.KI állomány első sorába a HIBAS szöveget, ha a KOCKA.BE valami oknál fogva nem megfelelő, egyébként a HELYES szót. Az állomány második sorától kezdődően a legkevesebb lépésszámú megoldást kell írni! (Ha több ilyen is van, akkor csak az egyiket.) Minden sorban két szám szerepeljen egy szóközzel elválasztva: melyik kockát melyikre kell tenni!

Példa

kocka.bekocka.ki
4 
2
0
0
3
HELYES
1 0
2 1
4 0
3 2
4 3

Tesztadatok