Fişierul intrare/ieşire: | bignum.in, bignum.out | Sursă | Science On 2021, clasa 7-8 |
Autor | Tamio-Vesa Nakajima | Adăugată de | |
Timp execuţie pe test | 0.25 sec | Limită de memorie | 268435 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Bignum
Vom nota un număr în baza 2 cu cifrele b[1],..., b[k] prin b[1]... b[k]2. De exemplu, 1012 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(1012) = 0112 = 1 + 21 = 3, sau ordonare(101012) = 001112 = 1 + 21+ 22 = 7.
Se dă un numar N2 în baza 2. Să se calculeze suma ordonare(12)+...+ordonare(N2) mod 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