| 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, 1012 este numărul 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(1012) = 0112 = 1 + 21 = 3, sau ordonare(101012) = 001112 = 1 + 21 + 22 = 7.
Se dă un număr N2 în baza 2. Să se calculeze suma ordonare(12)+...+ordonare(N2) modulo 109 + 7.
Date de intrare
Primul rând al fișierului de intrare conține numărul N2, î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, N2 are cel mult 20 de cifre în baza 2
- Pentru alte teste în valoare de 30 de puncte, N2 are cel mult 2 000 de cifre în baza 2
- Pentru alte teste în valoare de 50 de puncte, N2 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