#3042
Pasionat de informatică și de puzzle-uri, Dorel a construit o matrice A de dimensiunea N × M lipind mai multe piese dreptunghiulare de diferite dimensiuni. Fiecare piesă este compusă din elemente de dimensiunea 1 × 1 și rețin o aceeași valoare. Matricea rezultată nu are spații libere, iar piesele din care este compusă nu se suprapun. Nu există două piese cu aceeași valoare.
Deși inițial părea că acest design este unul inedit, nu a durat mult până când Dorel s-a plictisit. Astfel, acum el dorește să “upgradeze” matricea construită. Dorel alege o submatrice delimitată de coordonatele (x1,y1) – colțul stânga-sus, (x2,y2) – colțul dreapta-jos (1 ≤ x1 ≤ x2 ≤ N, 1 ≤ y1 ≤ y2 ≤ M), unde crește toate valorile elementelor submatricei cu valoarea V.
Dorel efectuează în ordine Q operații de upgrade, operații numerotate de la 1 la Q. La finalizarea celor Q operații de upgrade, toate elementele din matrice au valoarea mai mare sau egală cu K. După o operație de upgrade, structura inițială a matricei se modifică.
Cum priceperea lui Dorel este proverbială, trebuie să îl ajutați în rezolvarea următoarelor cerințe:
1) determinarea coordonatelor piesei cu număr maxim de elemente înainte ca Dorel să efectueze operațiile de upgrade;
2) determinarea numărului minim de operații de upgrade după care toate elementele matricei au valoarea mai mare sau egală cu K.
ONI 2019 clasa a IX-a
| Problema | amat | Operații I/O |
amat.in/amat.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64089238 | Utilizator | |
| Fișier | amat.cpp | Dimensiune | 1.63 KB |
| Data încărcării | 16 Aprilie 2026, 12:41 | Scor/rezultat | 10 puncte |
amat.cpp: In function ‘int main()’: amat.cpp:14:15: warning: unused variable ‘x’ [-Wunused-variable] 14 | int c,n,m,x,maxi = 0,x1,y1,x2,y2; | ^ amat.cpp:62:20: warning: ‘x1’ may be used uninitialized [-Wmaybe-uninitialized] 62 | fout << x1 << " " << y1 << " " << x2 << " " << y2; | ^~~ amat.cpp:14:26: note: ‘x1’ was declared here 14 | int c,n,m,x,maxi = 0,x1,y1,x2,y2; | ^~ amat.cpp:62:33: warning: ‘y1’ may be used uninitialized [-Wmaybe-uninitialized] 62 | fout << x1 << " " << y1 << " " << x2 << " " << y2; | ^~~ amat.cpp:14:29: note: ‘y1’ was declared here 14 | int c,n,m,x,maxi = 0,x1,y1,x2,y2; | ^~ amat.cpp:62:46: warning: ‘x2’ may be used uninitialized [-Wmaybe-uninitialized] 62 | fout << x1 << " " << y1 << " " << x2 << " " << y2; | ^~~ amat.cpp:14:32: note: ‘x2’ was declared here 14 | int c,n,m,x,maxi = 0,x1,y1,x2,y2; | ^~ amat.cpp:62:53: warning: ‘y2’ may be used uninitialized [-Wmaybe-uninitialized] 62 | fout << x1 << " " << y1 << " " << x2 << " " << y2; | ^~ amat.cpp:14:35: note: ‘y2’ was declared here 14 | int c,n,m,x,maxi = 0,x1,y1,x2,y2; | ^~
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0.001 secunde | Raspuns gresit. | 5 | 0 | ||
| 2 | 0.001 secunde | Raspuns gresit. | 5 | 0 | ||
| 3 | 0.005 secunde | OK. | 5 | 5 | ||
| 4 | 0.035 secunde | OK. | 5 | 5 | ||
| 5 | 0.062 secunde | Caught fatal signal 11 | 5 | 0 | ||
| 6 | 0.067 secunde | Caught fatal signal 11 | 5 | 0 | ||
| 7 | 0.001 secunde | Raspuns gresit. | 5 | 0 | ||
| 8 | 0.001 secunde | Raspuns gresit. | 5 | 0 | ||
| 9 | 0.002 secunde | Raspuns gresit. | 5 | 0 | ||
| 10 | 0.003 secunde | Raspuns gresit. | 5 | 0 | ||
| 11 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
| 12 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
| 13 | 0.048 secunde | Raspuns gresit. | 5 | 0 | ||
| 14 | 0.058 secunde | Raspuns gresit. | 5 | 0 | ||
| 15 | 0.063 secunde | Raspuns gresit. | 5 | 0 | ||
| 16 | 0.059 secunde | Caught fatal signal 11 | 5 | 0 | ||
| 17 | 0.064 secunde | Caught fatal signal 11 | 5 | 0 | ||
| 18 | 0.058 secunde | Raspuns gresit. | 5 | 0 | ||
| 19 | 0.06 secunde | Caught fatal signal 11 | 5 | 0 | ||
| 20 | 0.062 secunde | Caught fatal signal 11 | 5 | 0 | ||
| Punctaj total | 10 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema amat face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.