Fișierul intrare/ieșire | babilon.in, babilon.out | Sursă | ONI 2014 clasa a 5-a |
---|---|---|---|
Autor | Florentina Ungureanu | Adăugată de |
|
Timp de execuție pe test | 0.1 sec | Limită de memorie | 2048 KB |
Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
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 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 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 |