Detalii evaluare #21557021

Rezumat problemă

#1351 nano

În lumea lui Nano totul se construiește la nivel atomic. Știința a ajuns așa departe încât poate construi ”plăci” dreptunghiulare de atomi în care aceștia sunt aliniați perfect, pe un singur strat, formând un rastru. Nano dorește să comande la o firmă plăci pătrate de dimensiuni mari. Dimensiunile sunt atât de mari încât numărul de atomi dintr-o placă poate să fie scris cu până la 500 cifre. Firma i-a dat o listă cu bucățile de material de care dispune, pentru fiecare bucată fiind cunoscut numărul de atomi componenți, urmând ca Nano să aleagă doar acele bucăți din care se pot construi plăci pătrate.

Scrieți un program care citind numărul de atomi ai fiecărei bucăți de material din fișierul nano.in scrie în fișierul nano.out doar bucățile de material din care se pot face plăcile dorite de Nano.

Detalii

Problema nano Operații I/O nano.in/nano.out
Limita timp 0.5 secunde Limita memorie Total: 2 MB / Stivă 1 MB
Id soluție #21557021 Utilizator Racolta Raul (CB)
Fișier nano.cpp Dimensiune 995 B
Data încărcării 05 Martie 2020, 08:52 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

nano.cpp:22:37: error: expected ',' or '...' before '*' token
 unsigned long Divide(unsigned long a*, unsigned long X)

                                     ^
nano.cpp: In function 'long unsigned int Divide(long unsigned int)':
nano.cpp:28:15: error: invalid types 'long unsigned int[int]' for array subscript
     for (i=a[0]; i; i--)

               ^
nano.cpp:30:12: error: invalid types 'long unsigned int[int]' for array subscript
         a[i]=(R=10*R+A[i])/X;

            ^
nano.cpp:30:22: error: 'A' was not declared in this scope
         a[i]=(R=10*R+A[i])/X;

                      ^
nano.cpp:30:28: error: 'X' was not declared in this scope
         a[i]=(R=10*R+A[i])/X;

                            ^
nano.cpp:33:18: error: invalid types 'long unsigned int[int]' for array subscript
     while (!a[a[0]] && a[0]>1) a[0]--;

                  ^
nano.cpp:33:27: error: invalid types 'long unsigned int[int]' for array subscript
     while (!a[a[0]] && a[0]>1) a[0]--;

                           ^
nano.cpp:33:35: error: invalid types 'long unsigned int[int]' for array subscript
     while (!a[a[0]] && a[0]>1) a[0]--;

                                   ^
nano.cpp:34:15: error: invalid types 'long unsigned int[int]' for array subscript
     return a[0];

               ^
nano.cpp: In function 'void AtribValue(long unsigned int, long unsigned int)':
nano.cpp:45:18: error: too many arguments to function 'long unsigned int Divide(long unsigned int)'
     Divide(a[0],y)

                  ^
nano.cpp:22:15: note: declared here
 unsigned long Divide(unsigned long a*, unsigned long X)

               ^
nano.cpp:46:1: error: expected ';' before '}' token
 }

 ^
nano.cpp: In function 'int main()':
nano.cpp:50:9: error: 'i' was not declared in this scope
     for(i=1; i<=2*n; i++)

         ^
nano.cpp: In function 'long unsigned int Divide(long unsigned int)':
nano.cpp:35:1: warning: control reaches end of non-void function [-Wreturn-type]
 }

 ^

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