Feladat: I.265 Korcsoport: - Nehézségi fok: -
Füzet: 2011/április, 230. oldal  PDF  |  MathML 

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.

Valószínűleg mindenki ismeri a 15-ös játékot, ahol egy 4×4-es táblán 15 tologatható négyzet alakú elem és egy üres hely található. A játék során erre az üres helyre lehet a szomszédos elemek egyikét betolni. A 15 elemnek van egy helyes sorrendje, amely az értékek sorfolytonos növekvő elrendezését jelenti.
Az eredeti változat tehát 4×4-es tábláról szól, de változatlan szabályok mellett játszhatnánk N×M méretű táblán is.
Készítsünk programot, amely az N×M tábla eredeti állapotát helyreállító lépéssorozatot adja meg. A program első paramétere a bemeneti fájl, a második paramétere a kimeneti fájl neve legyen.
A bemeneti fájl első sora az N20 és M20 értékét tartalmazza, egymástól egyetlen szóközzel elválasztva. Az ezt követő N sor mindegyikében M darab szám található, egymástól pontosan egy szóközzel elválasztva, amely egy összekavart állapotot ír le. Az üres helyet a 0 jelöli.
A kimeneti fájl első sora az eredeti állapot helyreállításához szükséges ‐ nem feltétlenül minimális ‐ lépésszám legyen, a második sorban pontosan ennyi karakter szerepeljen. Minden karakter azt az irányt írja le, amely felé az üres helyre egy elemet tolunk. (B ‐ balról, F ‐ fentről, J ‐ jobbról, L ‐ lentről). Amennyiben a helyes sorrend a szabályos lépésekkel nem alakítható ki, az első sorban -1 szerepeljen.

 
BemenetKimenet   4 42   1 2 3 4LJ5 6 7 89 10 0 1213 14 11 15
 

Beküldendő egy tömörített i265.zip állományban a program forráskódja (i265.pas, i265.cpp, ...), valamint a program rövid dokumentációja (i265.txt, i265.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.