Detalii evaluare #24007315

Rezumat problemă

#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.

Detalii

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 David Ghiberdic (cyg_dawid)
Fișier ssk.cpp Dimensiune 941 B
Data încărcării 23 Septembrie 2020, 01:57 Scor / rezultat Eroare de compilare

Evaluare


Mesaj 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];

                                                                                              ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema SSK face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.