Antrenament OJI · clasa a 11-a · clasa a 11-a
Sume pe dreptunghiuri (OJI 11)
Cerință
Se dă o matrice n × m de numere întregi și q întrebări. Fiecare întrebare dă colțul stânga-sus (x1, y1) și colțul dreapta-jos (x2, y2) ale unui dreptunghi. Afișează suma elementelor din dreptunghi.
Problemă originală de antrenament în stil OJI, clasa a 11-a, nu este subiect oficial.
Date de intrare
Prima linie: n și m. Următoarele n linii: matricea. Apoi q, iar pe următoarele q linii: x1 y1 x2 y2.
Date de ieșire
q linii, câte o sumă. Nu afișa mesaje suplimentare.
Restricții
- 1 ≤ n, m ≤ 500
- 1 ≤ q ≤ 100 000
- −1000 ≤ elemente ≤ 1000
- Sunt 20 de teste, fiecare valorează 5 puncte.
1 1 236 1 1 1 1 1
236
Datele exemplului respectă formatul de intrare. Aplicăm ideea: Sume parțiale 2D: S(x2,y2) − S(x1−1,y2) − S(x2,y1−1) + S(x1−1,y1−1). Rezultatul corect pentru acest exemplu este: 236.
1 1 384 2 1 1 1 1 1 1 1 1
384 384
Datele exemplului respectă formatul de intrare. Aplicăm ideea: Sume parțiale 2D: S(x2,y2) − S(x1−1,y2) − S(x2,y1−1) + S(x1−1,y1−1). Rezultatul corect pentru acest exemplu este: 384 384.
3 3 718 -410 909 -64 807 -944 -285 -485 221 8 3 3 3 3 2 2 3 3 2 2 3 3 1 1 1 1 2 1 2 3 1 2 3 3 2 3 3 3 1 1 2 3
221 -401 -401 718 -201 98 -723 1016
Datele exemplului respectă formatul de intrare. Aplicăm ideea: Sume parțiale 2D: S(x2,y2) − S(x1−1,y2) − S(x2,y1−1) + S(x1−1,y1−1). Rezultatul corect pentru acest exemplu este: 8 linii, începând cu „221”.
Probleme similare pe PbInfo
Exersează aceeași tehnică și pe PbInfo — acolo găsești și soluții oficiale.
- #1512 Mars — șmenul lui Mars
- #3844 KSum — SSM cu lungime minimă
- #2921 SumeSecv1 — sume parțiale
- #237 Sume — sume parțiale
- #3659 SumMaxSecv — suma costurilor
- #4205 SecvSumS — secvență de sumă S
- #3941 CountSumS — perechi de sumă S
- #4532 SumOfAll — suma subsecvențelor
- #1879 platou2 — secvență crescătoare
- #1639 Secvente3 — ONI 2013
- #2301 secv — ONI gimnaziu 2016
- #2510 vsecvente — lot juniori
- #1090 Secvente2
- #4423 secv2
- #3163 SecvMaxVal
- #334 secventa1 — clasice
- #50 secvmax — secvența de sumă maximă
- #315 secventa
- #190 secvk — secvențe de lungime k
- #217 platou1 — platouri