Nemzetközi Informatikai Diákolimpia 1990

Minszk, Fehéroroszország



1. napi feladat (100 pont)
Adott egy 4x4-es mátrix. Kettő Kivételével minden eleme egy 1 és 14 közötti egész. Minden szám csak egyszer fordulhat elő, két cella pedig üresen marad. Az első ábrán egy ilyen elrendezést láthatunk.
 
 7  3  5 14
   4  9 13
 1    2 10
11  8 12  6
 1  2  3  4
 5  6  7  8
 9 10 11 12
13 14    

Bármely elem áttolható a szomszédos üres cellák egyikébe, de csak vízszintes vagy függőleges irányban. Az elemet eredetileg tartalmazó cella természetesen üressé válik.

Feladat:

Írj programot, amely:
  1. Soronként beolvassa a billentyűzetről a kezdő mátrix elemeit (0 és 14 közötti egészeket).
  2. Bármely kezdeti elrendezést (például az 1. ábrán láthatót) átalakít a második ábrán látható, végső elrendezéssé.
  3. Minden változtatás után a képernyőn megjeleníti
    1. a lépés sorszámát (az összes lépés száma a folyamat végén így leolvasható);
    2. a képernyő bal szélén a mozgatás előtti;
    3. a képernyő jobb szélén pedig a mozgatás utáni mátrixot.
  4. Minimalizálja a szükséges lépések számát.