tablou

Time limit: 0.05s Memory limit: 64MB Input: tablou.in Output: tablou.outPoints by default: 10p

Elevii din clasa mea vor să își decoreze clasa și au nevoie de mai multe tablouri. Niciun copil din clasă nu are talent la desen. Copiii au procurat un afiș de la un eveniment internațional și s-au gândit să decupeze din afiș mai multe tablouri. Tablourile trebuie să aibă formă dreptunghiulară și să conțină un singur obiect, care nu poate fi tăiat; obiectul poate fi înconjurat sau nu de fundal. Spunem că un obiect poate fi încadrat într-un tablou dacă se poate decupa un tablou care să îl conțină. Unii copii doresc tablouri mai mari, alții doresc tablouri mai mici. Copiii au la dispoziție un singur afiș motiv pentru care nu pot face încercări, deci tablourile trebuie să fie decupate din prima încercare. De aceea ei au apelat la colegii lor olimpici la informatică. Astfel afișul a fost reprezentat ca o matrice cu NN linii și MM coloane, elementele care fac parte dintr-un obiect sunt memorate cu valori nenule, iar elementele care fac parte din fundal sunt reprezentate cu 00. Două elemente din matrice fac parte din același obiect dacă au aceeași valoare nenulă și sunt adiacente pe linie sau pe coloană. Definim suprafața unui obiect ca fiind numărul de elemente ale matricei care fac parte din obiect.

Cerințe

Cunoscând NN, MM numărul de linii respectiv numărul de coloane din matrice și elementele matricei care reprezintă afișul, scrieţi un program care să rezolve următoarele cerinţe:

  1. Determină aria minimă a unui tablou care conține obiectul de suprafață maximă care poate fi încadrat într-un tablou;
  2. Determină numărul maxim de tablouri care pot fi decupate știind că elevii caută începând de sus în jos și de la stânga la dreapta obiectele care pot fi încadrate într-un tablou și decupează tabloul.

Date de intrare

Fişierul de intrare tablou.in conţine pe prima linie un număr natural CC reprezentând cerinţa care trebuie să fie rezolvată (11 sau 22). Pe a doua linie a fișierului de intrare se află două numere naturale N MN \ M, separate printr-un spațiu, care reprezintă numărul de linii și de coloane ale matricei care reprezintă afișul. Următoarele NN linii conțin câte MM numere naturale care reprezintă elementele matricei care descrie afișul. Elementele unei linii sunt separate prin câte un spațiu.

Date de ieșire

Fişierul de ieşire tablou.out va conţine răspunsul la cerinţa CC specificată în fişierul de intrare. Dacă C=1C=1 fişierul va conţine un număr natural, reprezentând aria minimă a tabloului ce conține obiectul de suprafață maximă care poate fi încadrat într-un tablou. Dacă C=2C=2 fişierul va conţine un număr natural, reprezentând numărul maxim de tablouri care pot fi decupate știind că elevii caută începând de sus în jos și de la stânga la dreapta obiectele care pot fi încadrate într-un tablou.

Restricții și precizări

  • 1N,M1001 \leq N, M \leq 100
  • Elementele matricei sunt cifre zecimale
  • Pentru teste valorând 4545 de puncte C=1C=1. Pentru teste valorând alte 4545 de puncte C=2C=2.
  • 1010 puncte se acordă din oficiu.

Exemplul 1

tablou.in

1
5 6
0 0 1 1 0 0
1 1 1 0 2 2
0 0 0 2 2 0
0 0 2 2 0 3
0 0 0 0 3 3

tablou.out

8

Exemplul 2

tablou.in

2
5 6
0 0 1 1 0 0
1 1 1 0 2 2
0 0 0 2 2 0
0 0 2 2 0 3
0 0 0 0 3 3

tablou.out

2

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