Un pătrat latin de ordin N este o matrice cu N linii şi N coloane care conţine N simboluri distincte, astfel încât orice linie şi orice coloană conţine toate cele N simboluri. Denumirea de pătrat latin provine din lucrările matematicianului Leonhard Euler, care a folosit ca simboluri litere din alfabetul latin.
Să considerăm un pătrat latin de ordin N care conţine numerele naturale de la 1 la N. Acesta poate conţine la rândul său subpătrate latine. Un subpătrat de ordin L (1<L<N) este format din elemente situate la intersecţia a L linii consecutive şi L coloane consecutive în pătratul dat. Subpătratul de ordin L este considerat subpătrat latin dacă el conţine numai numerele naturale de la 1 la L, astfel încât fiecare linie şi fiecare coloană din subpătrat conţine toate cele L numere.
Cerinţă
Dat fiind un pătrat latin, să se determine toate subpătratele latine conţinute de acesta.
Date de intrare
Fişierul de intrare latin.in conţine pe prima linie numărul natural N. Pe următoarele N linii se află câte N numere naturale distincte cuprinse între 1 şi N, separate prin spaţii, reprezentând elementele unui pătrat latin de ordin N.
Date de ieşire
Fişierul de ieşire latin.out va conţine pe prima linie un număr natural Nr, reprezentând numărul de subpătrate latine conţinute de pătratul latin dat. Pe următoarele Nr linii vor fi descrise subpătratele latine determinate, câte un subpătrat pe o linie. Linia care descrie un subpătrat va conţine 3 numere naturale separate prin câte un spaţiu ls cs o, unde ls şi cs reprezintă linia, respectiv coloana colţului din stânga-sus al subpătratului, iar o reprezintă ordinul acestuia. Subpătratele vor fi scrise în ordinea crescătoare a liniilor pe care se află colţul din stânga-sus; dacă există mai multe subpătrate cu colţul din stânga-sus pe aceeaşi linie, vor fi afişate crescător după ordin.
Restricţii
• 2 ≤ N ≤ 500
• Liniile şi coloanele sunt numerotate de la 1 la N.