ConcursC++17

dj

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:

  1. se selectează un element xx din șir și se înlocuiește cu x⋅2+1x \cdot 2 + 1;
  2. se selectează un element xx din șir și se înlocuiește cu câtul împărțirii întregi dintre xx și 22.

Cerință

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.

Date de intrare

Fișierul de intrare dj.in conține pe prima linie numărul natural NN reprezentând numărul de elemente din șir. Pe a doua linie se află NN numere naturale separate prin câte un spațiu, reprezentând elementele șirului.

Date de ieșire

Fișierul de ieșire dj.out conține o singură linie pe care se află numărul total minim de operații necesare pentru egalizarea valorilor din șirul dat.

Restricții și precizări

  • 2≤N≤50 0002 \le N \le 50\ 000
  • 0≤0 \le valorile din șir ≤2⋅105\le 2 \cdot 10^5
#PunctajRestricții
1212≤N≤102 \le N \le 10, 0≤0 \le valoarea maximă din șir ≤20\le 20
223Pentru orice element din șir se aplică cel mult o operație.
3242≤N≤5002 \le N \le 500, 21≤21 \le valoarea maximă din șir ≤255\le 255
432Fără restricții suplimentare

Exemplul 1

dj.in

4
6 7 12 15

dj.out

6

Explicație

Numărul total minim de operații necesare pentru a egaliza valorile din șir este 66.

6→236 \xrightarrow{2} 3

7→237 \xrightarrow{2} 3

12→26→2312 \xrightarrow{2} 6 \xrightarrow{2} 3

15→27→2315 \xrightarrow{2} 7 \xrightarrow{2} 3

Exemplul 2

dj.in

4
2 7 3 12

dj.out

5

Explicație

Numărul total minim de operații necesare pentru a egaliza valorile din șir este 55.

2→21→132 \xrightarrow{2} 1 \xrightarrow{1} 3

7→237 \xrightarrow{2} 3

12→26→2312 \xrightarrow{2} 6 \xrightarrow{2} 3

Asupra elementului 33 nu aplicăm nicio operație.

Sursă și autori

ONI 2026, clasele 8. Eduard-Lucian Pîrțac.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑