Zadanie 7 (termin oddania 9.02, 18:30, 4 pkt.) ---------------------------------------------- W pliku kostki: file of array[1..n,1..n] of 0..1 znajduja sie opisy kostek ukladanki. Wartosc 1 oznacza, ze odpowiednie pole jest elementem kostki, 0 ze nie. Np. dla n = 4 jedna z kostek moglaby miec postac: 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 W pliku figura: file of array[1..m,1..m] of integer znajduje sie zestaw ukladanek do ulozenia. Kazda ukladanka ma postac analogiczna jak kostka (tyle ze m jest zapewne wieksze od n). Zagadke daje sie rozwiazac wtedy i tylko wtedy, gdy da sie tak ulozyc _wszystkie_ kostki ukladanki, kazda dokladnie raz, zeby wszystkie jedynki kostek znajdowaly sie na polach ukladanki z wartoscia 1 i na kazde pole ukladanki z wartoscia 1 byla polozona dokladnie jedna czesc kostki z jedynka. Z powyzszego wynika, ze aby udalo sie ulozyc ukladanke liczba jedynek we wszystkich kostkach musi byc rowna liczbie jedynek w ukladance. Wynika stad rowniez, ze kostka n*n moze wystawac poza ukladanke, ale tylko czescia nie zawierajaca jedynek. Uwaga: kostki mozna obracac, ale nie mozna ich odwracac na druga strone. Mozna zalozyc, ze liczba kostek jest nie wieksza niz stala MaxLKostek=20, stala n wynosi 4, zas stala m=10. Napisz program, ktory wywolany z dwoma parametrami: nazwa pliku z kostkami i nazwa pliku z ukladankami wypisze na standardowe wyjscie dla kazdej ukladanki w osobnym wierszu liczbe sposobow jej ulozenia (nie uwzgledniajac symetrii, tzn. np. nie przejmujemy sie tym, ze pokazana powyzej kostke mozna polozyc ze wzgledu na obroty na 4 sposoby, ktore sa ze soba identyczne, nie przejmujemy sie rowniez tym, ze sama ukladanka moze miec osie symetrii). Bledne sytuacje (np. brak plikow z danymi) nalezy zasygnalizowac stosownym komunikatem wypisanym na standardowe wyjscie a potem nalezy wywolac procedure halt.