#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.
ONI 2012, Clasa a VIII-a
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 | #50505143 | Utilizator | |
Fișier | cuburi3.cpp | Dimensiune | 5.36 KB |
Data încărcării | 11 Aprilie 2024, 22:21 | Scor / rezultat | 100 puncte |
cuburi3.cpp: In function 'int main()': cuburi3.cpp:75:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(i<s.size()-3 && cnt>0) ^ cuburi3.cpp:205:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int z=0; z<s.size(); z++) ^ cuburi3.cpp:45:11: warning: 'trg' may be used uninitialized in this function [-Wmaybe-uninitialized] trg*=6; ^
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 secunde | OK. | 5 | 5 | ||
11 | 0.004 secunde | OK. | 5 | 5 | ||
12 | 0.012 secunde | OK. | 5 | 5 | ||
13 | 0.012 secunde | OK. | 5 | 5 | ||
14 | 0.008 secunde | OK. | 5 | 5 | ||
15 | 0.004 secunde | OK. | 5 | 5 | ||
16 | 0.02 secunde | OK. | 5 | 5 | ||
17 | 0.032 secunde | OK. | 5 | 5 | ||
18 | 0.036 secunde | OK. | 5 | 5 | ||
19 | 0.044 secunde | OK. | 5 | 5 | ||
20 | 0 secunde | OK. | 5 | 5 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Cuburi3 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ă.