Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | bignum.in, bignum.out | Sursă | Science On 2021, clasa 7-8 |
|---|---|---|---|
| Autor | Tamio-Vesa Nakajima | Adăugată de |
|
| Timp de execuție pe test | 0.1 sec | Limită de memorie | 262144 KB |
| Scorul tău | N/A | Dificultate | N/A |
Vezi soluțiile trimise | Statistici
Bignum (clasa a 8-a)
Vom nota un număr în baza 2 cu cifrele b[$1]$,..., b[k] prin b[$1]$... b[k]$~[$2]~. De exemplu, 101~2~ este numarul 1 + 22 = 5. Definim ordonarea unui număr în baza 2 ca fiind numărul ce rezultă din sortarea în ordine crescătoare a cifrelor numărului. De exemplu, ordonare(101 2) = 011 2 = 1 + 21 = 3, sau ordonare(10101 2) = 00111 2 = 1 + 21+ 22 = 7.
Se dă un numar N~2~ în baza 2. Să se calculeze suma ordonare(1 2)+...+ordonare(N 2) mod 109 + 7
Date de intrare
Primul rând al fișierului de intrare conține numărul N~2~, în baza 2.
Date de ieșire
Fișierul de ieșire va conține suma descrisă anterior, în baza 10.
Restricții
- Pentru teste în valoare de 20 de puncte , N~2~ are cel mult 20 de cifre în baza 2
- Pentru alte teste în valoare de 30 de puncte , N~2~ are cel mult 2 000 de cifre în baza 2
- Pentru alte teste în valoare de 50 de puncte , N~2~ are cel mult 200 000 de cifre în baza 2
Exemplu
| bignum.in | bignum.out |
|---|---|
| 100 | 6 |
| 11110000 | 5040 |
Explicație
Observăm că:
ordonare(12)+ordonare(102)+ordonare(112)+ordonare(1002) = 12 + 012 + 112 + 0012 = 1 + 1 + 3 + 1 = 6