#4785
summat
Se consideră şirul crescător 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, ...
, în care fiecare număr natural nenul i
apare de 2
i-1
ori. Elementele unei matrice A
cu M
linii şi N
coloane au valori astfel încât, parcurgând matricea de sus în jos, pe linii, și de la stânga la dreapta pe fiecare linie, se obțin primii M x N
termeni ai șirului precizat. O submatrice a lui A
este definită de patru valori, l1, c1, l2, c2
şi este formată din elementele A
i,j
cu proprietatea că l1 ≤ i ≤ l2
și c1 ≤ j ≤ c2
. Determinaţi suma elementelor pentru fiecare dintre Q
submatrice date ale lui A
.
OJI 2025, clasa a 9-a
Problema | summat | Operații I/O |
![]() summat.in /summat.out
|
---|---|---|---|
Limita timp | 0.9 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #58273984 | Utilizator | |
Fișier | summat.cpp | Dimensiune | 3.26 KB |
Data încărcării | 23 Mai 2025, 15:38 | Scor / rezultat | Eroare de compilare |
summat.cpp:10:26: error: expected ',' or ';' before ':' token ifstream cin("summat.in"): ^ summat.cpp:16:6: error: 'Position' was not declared in this scope pair<Position, Position> number[60]; ^ summat.cpp:16:16: error: 'Position' was not declared in this scope pair<Position, Position> number[60]; ^ summat.cpp:16:24: error: template argument 1 is invalid pair<Position, Position> number[60]; ^ summat.cpp:16:24: error: template argument 2 is invalid summat.cpp:16:36: error: invalid type in declaration before ';' token pair<Position, Position> number[60]; ^ summat.cpp:18:1: error: 'Position' does not name a type Position posToCoord(long long pos, int m) { ^ summat.cpp:25:22: error: 'Position' was not declared in this scope long long coordToPos(Position a, int m) { ^ summat.cpp:25:34: error: expected primary-expression before 'int' long long coordToPos(Position a, int m) { ^ summat.cpp:25:39: error: expression list treated as compound expression in initializer [-fpermissive] long long coordToPos(Position a, int m) { ^ summat.cpp:25:41: error: expected ',' or ';' before '{' token long long coordToPos(Position a, int m) { ^ summat.cpp:29:9: error: 'Position' was not declared in this scope bool ok(Position a, int n, int m) { ^ summat.cpp:29:21: error: expected primary-expression before 'int' bool ok(Position a, int n, int m) { ^ summat.cpp:29:28: error: expected primary-expression before 'int' bool ok(Position a, int n, int m) { ^ summat.cpp:29:33: error: expression list treated as compound expression in initializer [-fpermissive] bool ok(Position a, int n, int m) { ^ summat.cpp:29:35: error: expected ',' or ';' before '{' token bool ok(Position a, int n, int m) { ^ summat.cpp: In function 'int main()': summat.cpp:43:9: error: 'Position' was not declared in this scope Position start = posToCoord(posStart, m); ^ summat.cpp:43:18: error: expected ';' before 'start' Position start = posToCoord(posStart, m); ^ summat.cpp:44:18: error: expected ';' before 'end' Position end = posToCoord(posEnd , m); ^ summat.cpp:46:25: error: 'ok' cannot be used as a function if(!ok(end, n, m)) { ^ summat.cpp:47:22: error: expected ';' before 'fin' Position fin; ^ summat.cpp:48:13: error: 'fin' was not declared in this scope fin.x = n; ^ summat.cpp:50:27: error: 'start' was not declared in this scope number[nr] = {start, fin}; ^ summat.cpp:50:24: error: cannot convert '<brace-enclosed initializer list>' to 'int' in assignment number[nr] = {start, fin}; ^ summat.cpp:54:23: error: 'start' was not declared in this scope number[nr] = {start, end}; ^ summat.cpp:54:20: error: cannot convert '<brace-enclosed initializer list>' to 'int' in assignment number[nr] = {start, end}; ^ summat.cpp:71:13: error: 'Position' was not declared in this scope Position start = number[j].first; ^ summat.cpp:71:22: error: expected ';' before 'start' Position start = number[j].first; ^ summat.cpp:72:22: error: expected ';' before 'end' Position end = number[j].second; ^ summat.cpp:74:62: error: 'coordToPos' cannot be used as a function long long posStart = coordToPos({lCurr, cCurr}, m); ^ summat.cpp:75:54: error: 'coordToPos' cannot be used as a function long long posEnd = coordToPos({l2, c2}, m); ^ summat.cpp:76:48: error: 'start' was not declared in this scope long long posStartCur = coordToPos(start, m); ^ summat.cpp:76:56: error: 'coordToPos' cannot be used as a function long long posStartCur = coordToPos(start, m); ^ summat.cpp:77:52: error: 'coordToPos' cannot be used as a function long long posEndCur = coordToPos(end, m); ^ summat.cpp:80:26: error: expected ';' before 'coordStart' Position coordStart = posToCoord(posStart, m); ^ summat.cpp:81:26: error: expected ';' before 'coordEnd' Position coordEnd = posToCoord(min(posEnd, posEndCur), m); ^ summat.cpp:83:20: error: 'coordStart' was not declared in this scope if(coordStart.x == coordEnd.x) { ^ summat.cpp:83:36: error: 'coordEnd' was not declared in this scope if(coordStart.x == coordEnd.x) { ^ summat.cpp:112:44: error: 'coordToPos' cannot be used as a function if(coordToPos({lCurr, cCurr}, m) > posEnd) { ^ summat.cpp:76:23: warning: unused variable 'posStartCur' [-Wunused-variable] long long posStartCur = coordToPos(start, m); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema summat 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ă.