Detalii evaluare #33534682

Rezumat problemă

Fascinat de Egiptul Antic, Rareș vrea să construiască cât mai multe piramide din cartonașe pătratice identice. El are la dispoziție N cartonașe numerotate de la 1 la N, albe sau gri, așezate în ordinea strict crescătoare a numerelor.

  • Prima piramidă o va construi folosind primele trei cartonașe. Baza piramidei va fi formată din cartonașele 1 și 2 așezate alăturat, peste care va așeza cartonașul 3 (vârful piramidei).
  • A doua piramidă va avea baza formată din cartonașele 4, 5 și 6 așezate alăturat, deasupra cărora se vor așeza cartonașele 7 și 8, alăturate, peste care se va așeza cartonașul 9 (vârful piramidei).
  • Mai departe, va construi în ordine piramidele complete cu bazele formate din 4 cartonașe (cu numerele de la 10 la 13), respectiv 5 cartonașe (cu numerele de la 20 la 24), 6 cartonașe (cu numerele de la 35 la 40) etc., cât timp va putea construi o piramidă completă. De exemplu, dacă Rareș are N=75 cartonașe atunci el va construi piramidele complete 1, 2, 3, 4 și 5 din imaginile următoare. Din cele 75 de cartonașe el va folosi doar primele 55 de cartonașe, deoarece ultimele 20 cartonașe nu sunt suficiente pentru a construi piramida 6, cu baza formată din 7 cartonașe.

Scrieţi un program care să citească numerele naturale N (reprezentând numărul de cartonașe), X (reprezentând numărul unui cartonaș), K (reprezentând numărul de cartonașe albe), numerele celor K cartonașe albe c1, c2, …, cK și care să determine:

a) numărul P al piramidei complete ce conține cartonașul numerotat cu X;
b) numărul M maxim de piramide complete construite de Rareș;
c) numărul C de cartonașe nefolosite;
d) numărul A al primei piramide complete care conține cele mai multe cartonașe albe.

Detalii

Problema Piramide Operații I/O piramide.in/piramide.out
Limita timp 0.5 secunde Limita memorie Total: 2 MB / Stivă 2 MB
Id soluție #33534682 Utilizator boehwq efqiyw (bob1010)
Fișier piramide.cpp Dimensiune 1.12 KB
Data încărcării 26 Decembrie 2021, 00:54 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

piramide.cpp: In function 'int main()':
piramide.cpp:17:58: warning: operation on 'ind' may be undefined [-Wsequence-point]
         a[++ind] = a[ind - 1] + (ind + 1) * (ind + 2) / 2;

                                                          ^
piramide.cpp:17:58: warning: operation on 'ind' may be undefined [-Wsequence-point]
piramide.cpp:17:58: warning: operation on 'ind' may be undefined [-Wsequence-point]
piramide.cpp:11:36: warning: unused variable 'cate' [-Wunused-variable]
     int pir = 0, nefolosite, x, c, cate, maxim = 0, nrp = 0;

                                    ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
2 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
3 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
4 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
5 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
6 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
7 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
8 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
9 0.008 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
10 0 secunde Cerinta a - corect. Cerinta b - corect. Cerinta c - corect. Cerinta d - corect. 10 10
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 Piramide 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ă.