#4655
Andra are un pachet cu n tipuri de buline de ciocolată, cu câte c[i] buline de fiecare tip i. Andra dorește să utilizeze toate bulinele pentru a construi piramide, fiecare fiind formată din unul sau mai multe rânduri, numerotate începând de la 1. Pentru fiecare piramidă în parte, pe rândul i, se află 2i-1 buline. Spre exemplu, pe rândul 8 al unei piramide, se află 27 = 128 de buline de ciocolată. Pe fiecare rând al unei piramide se află unul sau mai multe tipuri de buline, iar același tip de buline se poate folosi pe oricâte rânduri. Dintre piramidele care se pot forma, cele serioase conțin pe fiecare rând doar un tip de buline. Folosind toate bulinele, ajutați-o pe Andra să determine:
1) Numărul minim de piramide de ciocolată pe care le poate forma.
2) Numărul minim de piramide serioase de ciocolată pe care le poate forma, astfel încât toate cele obținute să fie de acest fel.
ONI 2024, clasa a 8-a
| Problema | mandms | Operații I/O |
mandms.in/mandms.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64004735 | Utilizator | |
| Fișier | mandms.cpp | Dimensiune | 3.54 KB |
| Data încărcării | 03 Aprilie 2026, 22:28 | Scor/rezultat | Eroare de compilare |
mandms.cpp:44:26: error: expected ',' or '...' before '__int128' void print_u128(unsigned __int128 n, FILE* fout) { ^ mandms.cpp: In function 'void print_u128(unsigned int)': mandms.cpp:45:9: error: 'n' was not declared in this scope if (n == 0) { ^ mandms.cpp:46:17: error: 'fout' was not declared in this scope fprintf(fout, "0\n"); ^ mandms.cpp:51:12: error: 'n' was not declared in this scope while (n > 0) { ^ mandms.cpp:56:23: error: 'fout' was not declared in this scope fputc(buf[i], fout); ^ mandms.cpp:58:17: error: 'fout' was not declared in this scope fputc('\n', fout); ^ mandms.cpp: In function 'int main()': mandms.cpp:75:14: error: expected unqualified-id before '__int128' unsigned __int128 cnt[65] = {0}; ^ mandms.cpp:76:14: error: expected unqualified-id before '__int128' unsigned __int128 total_sum = 0; ^ mandms.cpp:85:17: error: 'cnt' was not declared in this scope cnt[bit]++; ^ mandms.cpp:89:13: error: 'total_sum' was not declared in this scope total_sum += current_c; ^ mandms.cpp:93:22: error: expected unqualified-id before '__int128' unsigned __int128 next_c = current_c; ^ mandms.cpp:94:13: error: 'next_c' was not declared in this scope next_c = (next_c * y) % t + z; ^ mandms.cpp:100:18: error: expected unqualified-id before '__int128' unsigned __int128 S = total_sum; ^ mandms.cpp:101:18: error: expected unqualified-id before '__int128' unsigned __int128 k = 1; ^ mandms.cpp:102:14: error: 'S' was not declared in this scope if ((S % 2) == 0) k = 2; // k must have the same parity as S because 2^R limits ^ mandms.cpp:102:27: error: 'k' was not declared in this scope if ((S % 2) == 0) k = 2; // k must have the same parity as S because 2^R limits ^ mandms.cpp:105:22: error: expected unqualified-id before '__int128' unsigned __int128 val = S + k; ^ mandms.cpp:107:22: error: expected unqualified-id before '__int128' unsigned __int128 temp = val; ^ mandms.cpp:108:20: error: 'temp' was not declared in this scope while (temp > 0) { ^ mandms.cpp:112:25: error: 'k' was not declared in this scope if (bits <= k) break; ^ mandms.cpp:113:13: error: 'k' was not declared in this scope k += 2; ^ mandms.cpp:115:20: error: 'k' was not declared in this scope print_u128(k, fout); ^ mandms.cpp:117:18: error: expected unqualified-id before '__int128' unsigned __int128 A[65] = {0}; ^ mandms.cpp:119:13: error: 'A' was not declared in this scope A[i] = cnt[i]; ^ mandms.cpp:119:20: error: 'cnt' was not declared in this scope A[i] = cnt[i]; ^ mandms.cpp:126:21: error: 'A' was not declared in this scope if (A[i] < A[i+1]) { ^ mandms.cpp:127:30: error: expected unqualified-id before '__int128' unsigned __int128 diff = A[i+1] - A[i]; ^ mandms.cpp:128:30: error: expected unqualified-id before '__int128' unsigned __int128 shift = (diff + 2) / 3; ^ mandms.cpp:129:31: error: 'shift' was not declared in this scope A[i+1] -= shift; ^ mandms.cpp:135:20: error: 'A' was not declared in this scope print_u128(A[0], fout); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema mandms 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ă.