Sudoku jest łamigłówką, której celem jest wypełnienie kwadratowego diagramu rozmiaru N2×N2 liczbami naturalnymi z zakresu od 1 do N2 w taki sposób, aby każdy wiersz, każda kolumna oraz każdy z N2 wyróżnionych kwadratów rozmiaru N×N (zwanych „blokami” lub „podkwadratami”) zawierały dokładnie jedno wystąpienie każdej z liczb z zakresu od 1 do N2. Każdy z kolejnych N2 wierszy zawiera N2 liczb naturalnych z zakresu od 1 do N2. Jako wynik program powinien wydrukować na standardowym wyjściu słowo TAK jeśli wczytany diagram jest poprawnym rozwiązaniem sudoku oraz NIE w przeciwnym przypadku.
Przykładem prawidłowo rozwiązanego sudoku rozmiaru 22x22 jest:
1 | 2 | 3 | 4 |
3 | 4 | 1 | 2 |
2 | 3 | 4 | 1 |
4 | 1 | 2 | 3 |
Natomiast przykładem prawidłowo rozwiązanego sudoku rozmiaru 32x32 jest:
7 | 2 | 6 | 4 | 9 | 3 | 8 | 1 | 5 |
3 | 1 | 5 | 7 | 2 | 8 | 9 | 4 | 6 |
4 | 8 | 9 | 6 | 5 | 1 | 2 | 3 | 7 |
8 | 5 | 2 | 1 | 4 | 7 | 6 | 9 | 3 |
6 | 7 | 3 | 9 | 8 | 5 | 1 | 2 | 4 |
9 | 4 | 1 | 3 | 6 | 2 | 7 | 5 | 8 |
1 | 9 | 4 | 8 | 3 | 6 | 5 | 7 | 2 |
5 | 6 | 7 | 2 | 1 | 4 | 3 | 8 | 9 |
2 | 3 | 8 | 5 | 7 | 9 | 4 | 6 | 1 |
Napisz program, który dla wczytanego ze standardowego wejścia diagramu rozmiaru N2×N2 zweryfikuje czy jest on poprawnym rozwiązaniem sudoku.
Specyfikacja wejścia i wyjścia
Pierwszy wiersz wejścia zawiera liczbę naturalną 1≤N≤10. Każdy z kolejnych N2 wierszy zawiera N2 liczb naturalnych z zakresu od 1 do N2. Jako wynik program powinien wydrukować słowo TAK jeśli wczytany diagram jest poprawnym rozwiązaniem sudoku oraz słowo NIE w przeciwnym przypadku.
Przykładowe wejście I
2 1 2 3 4 3 4 1 2 2 3 4 1 4 1 2 3
Przykładowe wyjście I
TAK
Przykładowe wejście II
3 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 1 3 4 5 6 7 8 9 1 2 4 5 6 7 8 9 1 2 3 5 6 7 8 9 1 2 3 4 6 7 8 9 1 2 3 4 5 7 8 9 1 2 3 4 5 6 8 9 1 2 3 4 5 6 7 9 1 2 3 4 5 6 7 8
Przykładowe wyjście II
NIE