A 2d Rubik-kocka egy 3x3-as táblázat, amelyben a 0,1,2,...,8 számok találhatók. A megengedett lépések a következők: bármelyik sor vagy oszlop egy egységgel "elforgatható" bármelyik irányban, a sorok jobbra és balra, az oszlopok fel és le. Az elforgatás azt jelenti, hogy minden elem eggyel arrébb lép, az utolsó pedig bejön az első helyére.
Feladat
Írjunk programot, ami egy adott kezdőállapotból előállítja az alaphelyzetet:
Olyan megoldást kell keresnünk, ami a lehető legkevesebb lépésben ér célba. Ha nem oldható meg a kiindulási helyzet, azt is fel kell ismernünk.
Bemenet
A bemenet egyetlen sorában 0,1,2,..,8 számok találhatók, valamilyen sorrendben. A számokat soronként balról jobbra kell beírni, tehát a
bemenethez tartozó tábla:
Kimenet
A legrövidebb megoldás állapotait kell kiírni az alább látható formátumban.
Példa
Bemenet |
Kimenet |
3 5 6 1 2 0 8 7 4 |
356
120
874
356
120
748
156
720
348
146
750
328
146
075
328
126
045
378
612
045
378
012
345
678
|
Tesztadatok
Készül...
Címkék
A feladat forrása: saját feladat
Algoritmusok: szélességi bejárás
|