[2,1] Mřížka s čísly

Klasická hračka je Loydova patnáctka, mřížka 4×4 s patnácti kostičkami, na kterých jsou napsaná čísla. V téhle úloze máme mřížku libovolné velikosti, a její rozměry jsou zadané jako druhý parametr ve formátu [šířka, výška]. Máme vypsat, v jakém pořadí je potřeba s kostkami pohnout, aby prázdné místo bylo vlevo nahoře a za ním následovala čísla popořadě.

První parametr určuje rozmístění kostek v mřížce, přečtené po řádcích. Každé kladné číslo označuje některou z kostek, zatímco nula označuje prázdné místo.

Výstupem programu má být seznam čísel na kostkách v pořadí, jak s nimi musíme pohnout, abychom kostky srovnali popořadě.

Tahle úloha je asi těžká. Je v pořádku, když váš program poběží dlouho. Jestli se vám povede vyřešit aspoň některé testovací sady, pošlete program aspoň tak, a můžeme společně rozmyslet, co dál.