latin

Time limit: 0.5s Memory limit: 4MB Input: latin.in Output: latin.out

Un pătrat latin de ordin NN este o matrice cu NN linii și NN coloane care conține NN simboluri distincte, astfel încât orice linie și orice coloană conține toate cele NN 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 NN care conține numerele naturale de la 11 la NN. Acesta poate conține la rândul său subpătrate latine. Un subpătrat de ordin LL (1<L<N1 < L < N) este format din elemente situate la intersecția a LL linii consecutive și LL coloane consecutive în pătratul dat. Subpătratul de ordin LL este considerat subpătrat latin dacă el conține numai numerele naturale de la 11 la LL, astfel încât fiecare linie și fiecare coloană din subpătrat conține toate cele LL 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 NN. Pe următoarele NN linii se află câte NN numere naturale distincte cuprinse între 11 și NN, separate prin spații, reprezentând elementele unui pătrat latin de ordin NN.

Date de ieșire

Fișierul de ieșire latin.out va conține pe prima linie un număr natural NrNr, reprezentând numărul de subpătrate latine conținute de pătratul latin dat. Pe următoarele NrNr 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 33 numere naturale separate prin câte un spațiu ls cs ols \ cs \ o, unde lsls și cscs reprezintă linia, respectiv coloana colțului din stânga-sus al subpătratului, iar oo 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 și precizări

  • 2N5002 \leq N \leq 500
  • Liniile și coloanele sunt numerotate de la 11 la NN.

Exemplul 1

latin.in

3
2 3 1
1 2 3
3 1 2

latin.out

0

Exemplul 2

latin.in

8
5 6 7 8 1 2 3 4
6 7 8 5 2 1 4 3
7 8 5 6 3 4 2 1
8 5 6 7 4 3 1 2
1 4 2 3 5 6 7 8
2 1 3 4 6 7 8 5
3 2 4 1 7 8 5 6
4 3 1 2 8 5 6 7

latin.out

4
1 5 2
1 5 4
3 7 2
5 1 4

Log in or sign up to be able to send submissions!