#2434
Se dă o matrice binară cu n coloane și m linii. Coloanele sunt numerotate de la stânga la dreapta cu valori de la 1 la n, iar liniile sunt numerotate de jos în sus cu valori de la 1 la m.
Matricea dată are o formă particulară, astfel că pentru fiecare coloană i de la 1 la n toate elementele matricei de pe coloana respectivă au valoarea 1 pentru toate liniile cuprinse în intervalul [1, h[i]] și în rest valoarea 0. Valorile h[i] sunt numere naturale date în ordine crescătoare (h[i-1] ≤ h[i], 1 ≤ i ≤ n).
Să se răspundă la q întrebări de forma: dându-se numerele A, B, C, D se cere suma elementelor din submatricea determinată de zona dreptunghiulară având colțul stânga-jos în coloana A și linia B, iar colțul dreapta-sus în coloana C și linia D.
OJI 2018
| Problema | tnia | Operații I/O |
tnia.in/tnia.out
|
|---|---|---|---|
| Limita timp | 0.7 secunde | Limita memorie |
Total: 128 MB
/
Stivă 32 MB
|
| Id soluție | #63223462 | Utilizator | |
| Fișier | tnia.cpp | Dimensiune | 1.32 KB |
| Data încărcării | 22 Februarie 2026, 11:37 | Scor/rezultat | 100 puncte |
tnia.cpp: In function 'int main()': tnia.cpp:31:33: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("tnia.in","r",stdin); ^ tnia.cpp:32:35: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("tnia.out","w",stdout); ^ tnia.cpp:34:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d",&n,&m); ^ tnia.cpp:36:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&height[i]); ^ tnia.cpp:41:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&q); ^ tnia.cpp:43:64: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d%d", &downL.x, &downL.y, &topR.x, &topR.y); ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0 secunde | OK. | 5 | 5 | ||
| 1 | 0 secunde | OK. | 5 | 5 | ||
| 2 | 0 secunde | OK. | 5 | 5 | ||
| 3 | 0 secunde | OK. | 4 | 4 | ||
| 4 | 0.004 secunde | OK. | 4 | 4 | ||
| 5 | 0.008 secunde | OK. | 4 | 4 | ||
| 6 | 0.012 secunde | OK. | 4 | 4 | ||
| 7 | 0 secunde | OK. | 4 | 4 | ||
| 8 | 0 secunde | OK. | 4 | 4 | ||
| 9 | 0 secunde | OK. | 4 | 4 | ||
| 10 | 0 secunde | OK. | 4 | 4 | ||
| 11 | 0.076 secunde | OK. | 6 | 6 | ||
| 12 | 0.08 secunde | OK. | 6 | 6 | ||
| 13 | 0.084 secunde | OK. | 6 | 6 | ||
| 14 | 0.088 secunde | OK. | 6 | 6 | ||
| 15 | 0.088 secunde | OK. | 6 | 6 | ||
| 16 | 0.084 secunde | OK. | 6 | 6 | ||
| 17 | 0.088 secunde | OK. | 7 | 7 | ||
| 18 | 0 secunde | OK. | 10 | 10 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema tnia 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ă.