placa

Time limit: 0.05s Memory limit: 32MB Input: placa.in Output: placa.out

Un gard este format din mai multe plăci dreptunghiulare. Fiecare placă este, la rândul ei, construită din N×MN \times M cărămizi. Una dintre plăci ridică o problemă, deoarece este deteriorată. Placa este reprezentată pe hârtie cu ajutorul unei matrice cu NN linii și MM coloane, numerotate de la 11 la NN, respectiv de la 11 la MM. Matricea conține doar valori 00 și 11, și respectă următoarele reguli:

  • un element egal cu 11 indică prezența în aceea poziție a unei cărămizi, iar un element egal cu 00 indică absența ei
  • linia 11 și linia NN conțin numai valori egale cu 11, pentru că marginea de sus și cea de jos a plăcii este intactă;
  • din orice element egal cu 11, situat în interiorul matricei, se poate ajunge pe linia 11 sau pe linia NN sau pe amândouă, mergând doar în sus sau doar în jos, parcurgând numai valorile egale cu 11
  • există cel puțin o coloană stabilă (formată numai din elemente egale cu 11).

Se dorește modificarea plăcii și pentru aceasta se pot șterge din matrice maximum KK coloane alăturate. După ștergere se alipesc coloanele rămase și se deplasează pe verticală partea de sus a plăcii spre cea de jos, până când se va forma o coloană stabilă.

Cerinţă

Să se determine înălțimea minimă Hmin\text{Hmin} pe care o poate avea placa ștergând cel mult KK coloane alăturate. Identificați numărul minim de coloane alăturate care trebuie șterse pentru a obține înălțimea Hmin\text{Hmin}.

Date de intrare

Din fișierul de intrare placa.in se citesc de pe prima linie 33 numere naturale NN, MM, KK separate prin câte un spațiu, având semnificația din enunț. Pe fiecare dintre următoarele MM linii ale fișierului se găsesc perechi de numere naturale N1,N2N_1, N_2, separate printr-un spațiu. Astfel pe linia i+1i + 1 a fișierului de intrare numărul N1N_1 reprezintă numărul de elemente de 11 situate pe coloana ii, începând cu linia 11, deplasându-ne în „jos” până la întâlnirea unei valori egale cu 00, sau până se ajunge pe linia NN; numărul N2N_2 reprezintă numărul de elemente de 11 situate pe coloana ii, începând cu linia NN, deplasândune în „sus” până la întâlnirea unei valori egale cu 00, sau până se ajunge pe linia 11

Date de ieșire

În fișierul de ieșire placa.out se va scrie pe prima linie înălțimea minimă cerută Hmin\text{Hmin}, iar pe a doua linie numărul minim de coloane ce trebuie eliminate pentru a obține înălțimea Hmin\text{Hmin}.

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • 1M100 0001 \leq M \leq 100 \ 000
  • 1K<M1 \leq K \lt M
  • se garantează că pe liniile ce conțin informații referitoare la cele MM coloane ale matricei există cel puțin o linie pe care se află valoarea NN de 22 ori, în rest suma celor două valori este strict mai mică decât NN
  • toate valorile din fișier sunt strict pozitive
  • se acordă 30%30\% din punctajul pe test dacă doar prima valoare e corectă și 70%70\% din punctajul pe test dacă doar a doua valoare e corectă

Exemplu

placa.in

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

placa.out

3
2

Explicație

Matricea inițială:
1 1 1 1 1 11 \ 1 \ 1 \ 1 \ 1 \ 1
0 1 0 1 0 00 \ 1 \ 0 \ 1 \ 0 \ 0
0 0 0 1 1 00 \ 0 \ 0 \ 1 \ 1 \ 0
0 0 1 1 1 00 \ 0 \ 1 \ 1 \ 1 \ 0
1 1 1 1 1 11 \ 1 \ 1 \ 1 \ 1 \ 1
Înălțimea minimă este 33 și se poate obține eliminând, de exemplu, coloanele 3,4,53, 4, 5 rezultând matricea:
1 1 11 \ 1 \ 1
0 1 00 \ 1 \ 0
1 1 11 \ 1 \ 1
O altă modalitate de a obține aceeași înălțime dar prin ștergerea unui număr minim de coloane (44 și 55) conduce la:
1 1 1 11 \ 1 \ 1 \ 1
0 1 1 00 \ 1 \ 1 \ 0
1 1 1 11 \ 1 \ 1 \ 1

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