Fişierul intrare/ieşire: | babilon.in, babilon.out | Sursă | ONI 2014 clasa a 5-a |
Autor | Florentina Ungureanu | Adăugată de | |
Timp execuţie pe test | 0.1 sec | Limită de memorie | 2048 kbytes |
Scorul tău | N/A | Dificultate |
Babilon (clasa a 5-a)
Babilonienii au dezvoltat un sistem poziţional de scriere a numerelor, în care orice număr natural se poate reprezenta utilizând semnele (unu),
(zece) şi spaţii. Valorile k ∈ {2, 3, …, 9} se obţin scriind semnul
de k ori (scrierea babiloniană a lui 3 este
). Numerele 11, 12, …, 59 se obţin ca succesiuni de semne
urmate de semne
(43 se reprezintă ca
).
Sistemul foloseşte gruparea unităţilor câte şaizeci. Astfel, pentru a scrie numărul şaizeci se foloseşte acelaşi semn ca pentru unu, dar valoarea sa este dată de poziţia în care se găseşte semnul . Babilonienii nu foloseau cifra 0. Pentru poziţionarea corectă a semnelor se utiliza spaţiu
(60 se reprezintă ca
, 3600 se reprezintă ca
, etc).
Se codifică scrierea babiloniană a unui număr utilizând cifra 1 în locul semnului , cifra 2 în locul semnului
şi cifra 3 în loc de spaţiu, ca în exemplele de mai jos:
Scrierea babiloniană | Codificarea scrierii babiloniene | Valoarea zecimală a numărului |
---|---|---|
![]() ![]() ![]() ![]() | 1311 | 1*60+2=62 |
![]() ![]() | 12 | 1*60+10=70 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1221111 | 1*60+20+4=84 |
![]() ![]() ![]() ![]() ![]() ![]() | 123111 | 1*60*60+10*60+3=4203 |
Cerinţă
Dându-se un număr natural n şi un şir de n cifre ∈ {1, 2, 3}, reprezentând codificarea scrierii babiloniene a unui număr natural, să se determine:
a) numărul maxim de cifre 1 aflate pe poziţii consecutive în codificarea scrierii babiloniene date
b) numărul natural din sistemul zecimal corespunzător scrierii babiloniene date.
Date de intrare
Fişierul de intrare babilon.in va conţine:
- pe prima linie un număr natural p ( 1 ≤ p ≤ 2 );
- pe a doua linie un număr natural n;
- pe a treia linie n cifre separate prin câte un spaţiu, reprezentând codificarea scrierii babiloniene a unui număr natural.
Date de ieşire
Dacă valoarea lui p este 1, atunci se va rezolva numai punctul a) din cerinţă. În acest caz, fişierul de ieşire babilon.out va conţine pe prima linie un număr natural reprezentând numărul maxim de cifre 1 aflate pe poziţii consecutive în codificarea scrierii babiloniene date.
Dacă valoarea lui p este 2, atunci se va rezolva numai punctul b) din cerinţă. În acest caz, fişierul de ieşire babilon.out va conţine pe prima linie numărul natural corespunzător scrierii babiloniene date.
Restricţii
- 2 ≤ n ≤ 109
- se garantează faptul că numărul de cifre al rezultatului de la punctul b) (numărul zecimal) este mai mic decât 20
- 30% din teste vor avea pe prima linie valoarea 1, iar restul de 70% din teste vor avea pe prima linie valoarea 2.
Exemplu
babilon.in | babilon.out | Explicaţii |
---|---|---|
1 8 1 1 3 2 1 1 1 2 | 3 | 1 1 3 2 1 1 1 2 Cea mai lungă secvenţă de cifre 1 are lungimea 3. |
2 7 1 1 3 2 1 1 1 | 7213 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() 2 10 + 3 2 se înmulţeşte de două ori cu 60 (o dată pentru că este urmat de spaţiu şi încă o dată pentru că precede o grupă care începe cu semnul ![]() 2*60*60+10+3=7213 |
2 9 1 1 1 2 1 1 2 2 1 | 11541 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 3 12 21 3 se înmulţeşte cu 60 de două ori pentru că este precedat de două grupe care încep cu semnul ![]() şi la final se adună 21. 3*60*60+12*60+21=11541 |