ConcursC++17

puteri3

Lui Scortzy îi plac foarte mult bilele și puterile lui 33, astfel și-a organizat colecția de bile în cutii, după următoarea regulă: în prima cutie a pus o bilă, în a doua cutie 33 bile, în a treia cutie 99 bile, apoi 27,81,24327, 81, 243 …ș.a.m.d. Privind linia lungă de cutii Scortzy și-a pus întrebarea: Ce număr de bile poate obține folosind bilele din cutii, fără a le scoate din cutie?
Pentru a răspunde întrebării a început să formeze numerele: 00 (nici o cutie), 11 (cutia 11), 33 (cutia 22), 44 (cutiile 11 și 22), 99 (cutia 33) … ș.a.m.d., obținând șirul lui Scortzy, primii termeni ai acestui șir fiind: 0,1,3,4,9,10,12,13,27,28,30,31,36,370, 1, 3, 4, 9, 10, 12, 13, 27, 28, 30, 31, 36, 37.

Plăcându-i noul șir obținut Scortzy dorește să rezolve următoarele probleme:

Cerințe

  1. Citind un număr natural nn determină câte cutii au mai puțin de nn bile în ele;
  2. Citind un număr natural nn urmat de nn valori naturale x1,x2,…,xnx_1, x_2, \dots, x_n determină câte bile sunt, în fiecare dintre cutiile utilizate, pentru a obține cel de-al xix_i-lea număr din șirul lui Scortzy.

Date de intrare

Pe prima linie a fișierului puteri3.in se află numerele naturale cc și nn, separate printr-un spațiu. Dacă c=2c=2 atunci pe următoarele nn linii se vor găsi nn valori naturale x1,x2,…,xnx_1, x_2, \dots, x_n, câte una pe linie, ce reprezintă pozițiile din șirul lui Scortzy.

Date de ieșire

Dacă c=1c=1 atunci fișierul puteri3.out va conține un singur număr care reprezintă soluția cerinței 11, iar dacă c=2c=2 atunci fișierul puteri3.out va conține pe fiecare din cele nn linii ale sale unul sau mai multe numere. Pe linia ii a fișierului puteri3.outputeri3.out se vor afla unul sau mai multe numere, separate prin câte un spațiu, în ordine crescătoare, ce reprezintă numărul de bile din fiecare cutie folosită pentru a obține numărul de pe poziția xix_i din șirul lui Scortzy.

Restricții și precizări

  • C∈{1,2}C \in \{1, 2\};
  • 1≤x1,x2,…,xn≤10181\leq x_1, x_2, \dots, x_n \leq 10^{18};
  • Pentru c=1,1≤n≤1018c = 1, 1 \leq n \leq 10^{18};
  • Pentru c=2,1≤n≤1 000c = 2, 1\leq n \leq 1 \ 000, numărul de bile dintr-o cutie nu are mai mult de 8080 cifre.
    #PunctajRestricții
    120c=1c = 1
    230c=2c = 2, 1≤x1,x2,…,xn≤1 0001 \leq x_1, x_2, \dots, x_n \leq 1 \ 000
    335c=2c = 2, numărul de bile dintr-o cutie nu este mai mare decât 101810^{18}
    415c=2c = 2, fără restricții suplimentare

Exemplul 1

puteri3.in

1 100

puteri3.out

5

Explicație

Cutiile cu 11, 33, 99, 2727 și 8181 bile au mai puțin de 100100 de bile în ele.

Exemplul 2

puteri3.in

2 3
4
14
9

puteri3.out

1 3
1 9 27
27

Explicație

Primii termeni ai șirului lui Scortzy sunt: 0,1,3,4,9,10,12,13,27,28,30,31,36,370, 1, 3, 4, 9, 10, 12, 13, 27, 28, 30, 31, 36, 37.
Termenul de pe poziția 44 are valoarea 44 și se obține din suma 1+31+3.
Termenul de pe poziția 1414 are valoarea 3737 și se obține din suma 1+9+271+9+27.
Termenul de pe poziția 99 are valoarea 2727 și se obține folosind cutia ce conține 2727 bile.

Sursă și autori

ONI 2023, clasele 6. Daniel Popa.

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 ↑