balon

Time limit: 0.7s Memory limit: 64MB Input: balon.in Output: balon.out

Firma TgM produce plăci de umflat baloane. O placă de dimensiuni nn x mm este formată din nn linii cu câte mm celule pătrate de latură 11, fiecare celulă conținând un dispozitiv de care poate fi prins un balon pentru a fi umflat. Un balon are un nivel de umplere bijb_i{}_j cuprins între 11 (dezumflat) și nivelul de umplere maxim posibil kk. Introducerea unui nou volum de aer într-un balon umplut la nivelul maxim kk, conduce la spargerea lui (nivel k+1k+1). Fiecare balon spart este înlocuit automat cu un balon nou aflat la nivelul de umplere 11 înainte de a introduce un nou volum de aer în oricare dintre baloanele de pe placă.
Introducerea aerului în anumite baloane se face printr-o acționare care constă în următorii pași:

  • se conectează un sistem cilindru-piston la dispozitivul dintr-o celulă aflată pe linia xx și coloana yy;
  • se selectează o valoare naturală nenulă dd;
  • se apasă butonul Air aflat pe mânerul pistonului.

În urma acționării butonului Air, fiecare balon situat în pătratul cu colțul din stânga sus (xx, yy) cu latura dd trece de la nivelul de umplere curent la nivelul de umplere imediat următor. Dacă pătratul de latură dd depășește una sau mai multe din marginile plăcii, se transmite aer doar în baloanele aflate în interiorul acestuia. La acționarea butonului se consumă un număr de unități de volum de aer egal cu numărul de baloane aflate în interiorul pătratului.

Cerințe

Dându-se dimensiunile unei plăci nn și mm, nivelul maxim posibil de umplere a unui balon kk, numărul pp de acționări ale butonului Air, nivelul inițial de umplere al fiecărui balon de pe placă și pentru fiecare dintre acționările pistonului cele trei valori xx, yy și dd corespunzătoare, scrieți un program care determină și afișează:

  1. numărul de unități de aer consumate după cele pp acționări ale butonului Air;
  2. numărul de baloane sparte după cele pp acționări ale butonului Air;
  3. nivelul maxim de umplere a unui balon după cele pp acționări ale butonului Air și numărul de baloane aflate la acest nivel de umplere.

Date de intrare

Fișierul de intrare balon.in conține pe prima linie un număr natural CC, reprezentând cerința ce trebuie rezolvată (11, 22 sau 33), pe a doua linie patru numere naturale nenule nn, mm, kk și pp, cu semnificația din enunț, pe fiecare din următoarele nn linii câte mm valori reprezentând nivelul inițial de umplere a baloanelor de pe linia respectivă, iar pe fiecare din ultimele pp linii câte trei numere naturale xx, yy și dd corespunzătoare unei acționări a pistonului.
Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu.

Date de ieșire

In fișierul de ieșire balon.out:

  • dacă C=1C = 1, se va afișa pe prima linie numărul de unități de aer consumate după cele pp acționări ale butonului Air;
  • dacă C=2C = 2, se va afișa pe prima linie numărul de baloane sparte după cele pp acționări ale butonului Air;
  • dacă C=3C = 3, se vor afișa pe prima linie două numere separate printr-un spațiu reprezentând nivelul maxim de umplere a unui balon după cele pp acționări ale butonului Air și numărul de baloane aflate la acest nivel de umplere.

Restricții și precizări

  • C{1,2,3}C \in \{1, 2, 3\};
  • 1n,m,d1 0001 \leq n, m, d \leq 1 \ 000;
  • 1xn1 \leq x \leq n și 1ym1 \leq y \leq m;
  • 3k,p1 000 0003 \leq k, p \leq 1 \ 000 \ 000;
  • 1bijk1 \leq b_i{}_j \leq k, pentru oricare 1in1 \leq i \leq n și 1jm1 \leq j \leq m;
  • Pentru 3030 de puncte, C=1C = 1;
  • Pentru 3535 de puncte, C=2C = 2;
  • Pentru 3535 de puncte, C=3C = 3.

Exemplul 1

balon.in

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

balon.out

13

Explicație

C=1C = 1, n=4n = 4, m=6m = 6, k=5k = 5 și p=2p = 2.
La prima acționare a pistonului se consumă 99 unități de volum de aer corespunzătoare elementelor marcate cu galben în figura din enunț.
La a doua acționare a pistonului se consumă 44 unități de volum de aer corespunzătoare elementelor marcate cu roz în figura din enunț, deoarece doar patru dintre baloane sunt în interiorul pătratului de latură 33 cu colțul din stânga sus în poziția (3,5)(3, 5).

Exemplul 2

balon.in

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

balon.out

2

Explicație

C=2C = 2, n=4n = 4, m=6m = 6, k=5k = 5 și p=3p = 3.

După prima acționare corespunzătoare tripletei x=2x=2, y=1y=1, d=3d=3 nivelurile de umplere devin:

și nu s-a spart niciun balon.

După a doua acționare corespunzătoare tripletei x=3x=3, y=5y=5, d=3d=3 nivelurile de umplere devin:

și s-a spart balonul din poziția x=3x=3, y=5y=5, fiind înlocuit automat cu un balon nou.

După a treia acționare corespunzătoare tripletei x=3x=3, y=2y=2, d=4d=4 nivelurile de umplere devin:

și s-a spart balonul din poziția x=4x=4, y=2y=2, fiind înlocuit automat cu un balon nou. În total s-au spart 22 baloane.

Exemplul 3

balon.in

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

balon.out

5 2

Explicație

C=3C = 3, n=4n = 4, m=6m = 6, k=5k = 5 și p=3p = 3.
După cele trei acționări, nivelurile de umplere au devenit:

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

Nivelul maxim de umplere a unui balon este 55 și sunt două baloane cu acest nivel de umplere.

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