#4999
Jocul DJ (“Dublu sau Jumate”) este noua provocare pentru concurenții de la ONI 2026.
La începutul jocului primiți un șir de numere naturale.
Scopul jocului este de a egaliza valorile din șir, adică de a transforma șirul dat într-un șir cu toate elementele egale. Pentru aceasta, aveți la dispoziție două tipuri de operații:
𝑥 din șir și se înlocuiește cu 𝑥 · 2 + 1;𝑥 din șir și se înlocuiește cu câtul împărțirii întregi dintre 𝑥 și 2.Dat fiind un șir de numere naturale, scrieți un program care determină numărul total minim de operații necesare pentru egalizarea valorilor din șir.
ONI 2026, clasa a 8-a
| Problema | DJ | Operații I/O |
dj.in/dj.out
|
|---|---|---|---|
| Limita timp | 1.5 secunde | Limita memorie |
Total: 32 MB
/
Stivă 8 MB
|
| Id soluție | #64123140 | Utilizator | |
| Fișier | dj.cpp | Dimensiune | 824 B |
| Data încărcării | 18 Aprilie 2026, 17:10 | Scor/rezultat | Eroare de compilare |
dj.cpp:5:21: warning: missing terminating ' character 5 | const int XMAX = 200'000; | ^ dj.cpp:5:21: error: missing terminating ' character 5 | const int XMAX = 200'000; | ^~~~~ dj.cpp:6:1: error: expected ‘,’ or ‘;’ before ‘pair’ 6 | pair<int, int> f[XMAX + 3]; | ^~~~ dj.cpp: In function ‘int main()’: dj.cpp:22:9: error: ‘f’ was not declared in this scope 22 | f[temp].first++; | ^ dj.cpp:27:9: error: ‘f’ was not declared in this scope 27 | f[x].first++; | ^ dj.cpp:31:7: error: ‘f’ was not declared in this scope 31 | f[x].first++; | ^ dj.cpp:40:10: error: ‘f’ was not declared in this scope 40 | if ( f[i].first == n ) | ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema DJ 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ă.