taburet

Time limit: 0.2s Memory limit: 16MB Input: taburet.in Output: taburet.out

La un atelier de tâmplărie se confecţionează nn scaune tip taburet ce vor fi vopsite în două culori: roşu şi alb. Culoarea roşie este codificată prin valoarea 11, iar culoarea albă este codificată prin valoarea 00.
Un taburet este un scaun simplu, fără spătar, de formă cubică, confecţionat prin asamblarea a 66 plăci identice (44 dintre plăci vor forma feţele laterale ale scaunului iar celelalte 22 vor forma bazele scaunului).
În atelier, pentru construirea fiecărui scaun se procedează astfel: se iau câte 66 plăci, se numerotează de la 11 la 66 şi se aleg una, două, trei sau cel mult patru plăci pentru a se vopsi cu roşu iar celelalte plăci rămase se vopsesc cu alb. Se asamblează cele 66 plăci ale scaunului astfel:

  • placa numerotată cu 11 va fi baza scaunului;
  • placa numerotată cu 22 va fi placa din faţă;
  • placa numerotată cu 33 va fi placa din stânga;
  • placa numerotată cu 44 va fi placa din spate;
  • placa numerotată cu 55 va fi placa din dreapta;
  • placa numerotată cu 66 va fi placa baza superioară a scaunului

De exemplu, dacă se aleg plăcile 11, 22 şi 66 şi se vopsesc cu roşu, se va confecţiona un scaun ca în figura alăturată.
Când toate cele nn scaune tip taburet sunt gata, se constată că, deşi modul de alegere al plăcilor vopsite cu roşu a fost diferit, multe taburete arată la fel. Două taburete arată la fel şi sunt de acelaşi tip dacă există un mod de a le aşeza pe fiecare dintre ele astfel încât din orice parte le-am privi feţele lor sunt colorate la fel.

Cerinţă.

Cunoscând modul în care s-a vopsit fiecare placă din care e format un taburet, scrieţi un program care să determine câte tipuri de taburete au fost confecţionate şi care este cel mai mare număr de taburete de acelaşi tip.

Date de intrare

Fişierul taburet.in conţine pe prima linie un număr natural nn ce reprezintă numărul taburetelor confecţionate şi pe următoarele nn linii câte 66 numere naturale (cu valori de 00 sau 11) despărţite printr-un spaţiu, ce reprezintă modul de vopsire al plăcilor, în ordinea crescătoare a numerelor scrise pe acestea.

Date de ieşire

Fişierul taburet.out va conţine pe prima linie un număr natural ce reprezintă câte tipuri de taburete au fost confecţionate şi pe a doua linie, cel mai mare număr de taburete de acelaşi fel.

Restricții și precizări

  • 1n10 0001 \leq n \leq 10 \ 000
  • după asamblarea oricărui taburet, numerele de pe plăci nu mai sunt vizibile;

Exemplu

taburet.in

6 
1 0 1 0 0 0 
1 0 1 0 1 0
1 1 0 0 0 1
0 0 1 0 1 0
0 0 0 0 0 1
0 1 1 0 0 0

taburet.out

4
2

Explicație

S-au confecţionat 66 taburete, şi s-au vopsit cu roşu:

  • pentru taburetul 11: plăcile 11 şi 33;
  • pentru taburetul 22: plăcile 11, 33 şi 55;
  • pentru taburetul 33: plăcile 11, 22 şi 66;
  • pentru taburetul 44: plăcile 33 şi 55;
  • pentru taburetul 55: placa 66;
  • pentru taburetul 66: plăcile 22 şi 33;

Primul şi ultimul taburet sunt de acelaşi tip. De asemenea, al doilea şi al treilea taburet sunt de acelaşi tip. S-au confecţionat 44 tipuri de taburete şi sunt maxim două taburete de acelaşi tip.

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