#1228
SSK
Manole a învățat de la profesorul de informatică cum să calculeze suma elementelor oricărei matrice A
cu N
linii și M
coloane. El numerotează liniile de la 1
la N
și coloanele de la 1
la M
. Mai mult, Manole fiind extrem de pasionat de numere, va calcula sumele tuturor subtablourilor din cadrul matricei A
. Șirul acestor sume îl scrie pe o hârtie, după ce l-a ordonat crescător.
Prin subtablou el înțelege o zonă dreptunghiulară din matricea A
, identificată prin colțul stânga-sus (x1,y1)
şi colţul dreapta-jos (x2,y2)
, elementele subtabloului fiind toate elementele A[i][j]
pentru care x1≤i≤x2
şi y1≤j≤y2
. Suma unui subtablou este suma tuturor elementelor sale.
ONI GIM 2015, Baraj
Problema | SSK | Operații I/O |
ssk.in /ssk.out
|
---|---|---|---|
Limita timp | 0.75 secunde | Limita memorie |
Total: 5 MB
/
Stivă 5 MB
|
Id soluție | #24007315 | Utilizator | |
Fișier | ssk.cpp | Dimensiune | 941 B |
Data încărcării | 23 Septembrie 2020, 01:57 | Scor / rezultat | Eroare de compilare |
ssk.cpp:15:9: error: 'int j1' redeclared as different kind of symbol int i1, j1, i2, j2; ^ In file included from /usr/include/features.h:374:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/os_defines.h:39, from /usr/include/i386-linux-gnu/c++/4.8/bits/c++config.h:426, from /usr/include/c++/4.8/iosfwd:38, from /usr/include/c++/4.8/ios:38, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from ssk.cpp:1: /usr/include/i386-linux-gnu/bits/mathcalls.h:238:1: error: previous declaration of 'double j1(double)' __MATHCALL (j1,, (_Mdouble_)); ^ ssk.cpp: In function 'int main()': ssk.cpp:31:16: error: assignment of function 'double j1(double)' for(j1 = 1; j1 <= m; j1++) { ^ ssk.cpp:31:16: error: cannot convert 'int' to 'double(double)throw ()' in assignment ssk.cpp:31:27: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] for(j1 = 1; j1 <= m; j1++) { ^ ssk.cpp:31:32: error: ISO C++ forbids incrementing a pointer of type 'double (*)(double)throw ()' [-fpermissive] for(j1 = 1; j1 <= m; j1++) { ^ ssk.cpp:31:32: error: lvalue required as increment operand ssk.cpp:33:24: error: invalid conversion from 'double (*)(double)throw ()' to 'int' [-fpermissive] for(j2 = j1; j2 <= m; j2++) { ^ ssk.cpp:34:55: warning: pointer to a function used in arithmetic [-Wpointer-arith] matadd = sp[i2][j2] - sp[i2][j1 - 1] - sp[i1 - 1][j2] + sp[i1 - 1][j1 - 1]; ^ ssk.cpp:34:56: error: invalid types 'int [155][double (*)(double)throw ()]' for array subscript matadd = sp[i2][j2] - sp[i2][j1 - 1] - sp[i1 - 1][j2] + sp[i1 - 1][j1 - 1]; ^ ssk.cpp:34:93: warning: pointer to a function used in arithmetic [-Wpointer-arith] matadd = sp[i2][j2] - sp[i2][j1 - 1] - sp[i1 - 1][j2] + sp[i1 - 1][j1 - 1]; ^ ssk.cpp:34:94: error: invalid types 'int [155][double (*)(double)throw ()]' for array subscript matadd = sp[i2][j2] - sp[i2][j1 - 1] - sp[i1 - 1][j2] + sp[i1 - 1][j1 - 1]; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema SSK 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ă.