Detalii evaluare #2639033

Rezumat problemă

#1708 Cuburi3

Ionuţ a învăţat la şcoală să lucreze cu numere mari. El are la dispoziţie un şir de N numere naturale nenule. Din fiecare număr el şterge exact trei cifre, fără să schimbe ordinea cifrelor rămase, astfel încât să obţină cel mai mic număr natural nenul posibil. De exemplu, din numărul 20731049 se obţine numărul 20049, iar din numărul 13004 se obţine numărul 10. Înlocuind fiecare număr citit cu numărul obţinut prin operaţia de mai sus, Ionuţ obţine un nou şir şi scrie termenii acestuia pe feţele unor cuburi astfel: primele şase numere din şir le scrie pe primul cub şi îl notează pe acesta cu 1, următoarele şase numere din şir le scrie pe un alt cub pe care îl notează cu 2 ş.a.m.d.
Aceste cuburi au fost distribuite în piramide după modelul din figura de mai sus.

Piramidele au fost numerotate cu numere naturale consecutive. Piramida cu numărul de ordine 1 este formată numai din cubul cu numărul de ordine 1 şi are un singur nivel, piramida cu numărul de ordine 2 are pe primul nivel cuburile 2, 3 şi 4 iar pe ultimul nivel cubul 5 ş.a.m.d.

Două niveluri alăturate în cadrul unei piramide diferă prin exact două cuburi. Primul nivel al unei piramide conţine cu două cuburi mai mult decât primul nivel al piramidei precedente. Piramida se consideră completă dacă pe ultimul nivel are un singur cub.

Scrieţi un program care citeşte numerele naturale nenule N şi K, apoi cele N numere naturale ce fac parte din şirul iniţial, şi determină:
a) Numărul de piramide complete construite de Ionuţ.
b) Numerele scrise pe cuburile din primele K piramide.

Detalii

Problema Cuburi3 Operații I/O cuburi.in/cuburi.out
Limita timp 0.5 secunde Limita memorie Total: 2 MB / Stivă 1 MB
Id soluție #2639033 Utilizator Bud Razvan (razvi1234)
Fișier cuburi3.cpp Dimensiune 1.04 KB
Data încărcării 14 Iunie 2016, 00:23 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

cuburi3.cpp: In function 'int main()':
cuburi3.cpp:30:32: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
  freopen("cuburi.in","r",stdin);

                                ^
cuburi3.cpp:31:34: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
  freopen("cuburi.out","w",stdout);

                                  ^
cuburi3.cpp:33:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&n, &k);

                       ^
cuburi3.cpp:40:16: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&x);

                ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0 secunde OK. 5 5
2 0 secunde OK. 5 5
3 0 secunde OK. 5 5
4 0 secunde OK. 5 5
5 0 secunde OK. 5 5
6 0 secunde OK. 5 5
7 0 secunde OK. 5 5
8 0 secunde OK. 5 5
9 0 secunde OK. 5 5
10 0.004 secunde OK. 5 5
11 0.008 secunde OK. 5 5
12 0.012 secunde OK. 5 5
13 0.012 secunde OK. 5 5
14 0.012 secunde OK. 5 5
15 0.012 secunde OK. 5 5
16 0.024 secunde OK. 5 5
17 0.032 secunde OK. 5 5
18 0.036 secunde OK. 5 5
19 0.04 secunde OK. 5 5
20 0 secunde OK. 5 5
Punctaj total 100

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