Fişierul intrare/ieşire: | valuare.in, valuare.out | Sursă | Junior Challenge 2015 |
Autor | Costin Oncescu | Adăugată de | |
Timp execuţie pe test | 0.025 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Valuare
Cămătaru' şef trăieşte în ValoareLand, o ţară minunată în care cifrele sunt numerotate de la 0 la B - 1, numerele de orice fel fiind considerate în baza B. Acesta a primit un ordin direct de la Bossul ţării, si anume gasirea valorii bancnotei cu faţa Bossului în sistemul monetar din alte ţări (ţări simple, care folosesc sistemul zecimal). Valoarea bancnotelor din ValoareLand este mult prea mare raportat la ţările normale, motiv pentru care se cere restul împărţirii valorii reale la P. Bancnota cu faţa Bossului valorează 123...(B - 1) bănuţi (număr scris în baza B). Cum Cămătaru' şef nu vrea să fie exilat din ţară, şi nu este nici prea bun la informatică, acesta vă cere ajutorul.
O cerinţă reformulată a problemei, lipsită de valoare, este, deci, calcularea restul împărţirii numărului 123...(B - 1) (considerat în baza B) la P (ca şi rezultatul, P este un numar in baza 10).
Date de intrare
Fişierul de intrare valuare.in conţine pe prima şi singura linie doua valori B si P cu semnificaţia din enunţ.
Date de ieşire
În fişierul de ieşire valuare.out trebuie să conţină un singur număr reprezentand restul împărţirii numărului 123...(B - 1) (în baza B) la P.
Restricţii
- 1 ≤ B ≤ 1018
- 1 ≤ P ≤ 109 + 8
- Atentie! Fiecare subtask are testele grupate!
- Subtask 1 (20 puncte): B ≤ 51000 (Feedback testul 34)
- Subtask 2 (20 puncte): B < P , P = 1000000007 (Feedback testele 1 şi 4)
- Subtask 3 (20 puncte): cmmdc(B - 1, P) = 1, P ≤ 109 + 8 (Feedback testul 11)
- Subtask 4 (20 puncte): B ≤ 109, P ≤ 109 + 8 (Feedback testul 17)
- Subtask 5 (20 puncte): B ≤ 1018, P ≤ 109 + 8 (Feedback testul 25)
- Atenţie! Testele nu se evaluează în ordinea consacrată (adică evaluarea nu va începe cu testul 1).
Exemplu
valuare.in | valuare.out |
---|---|
5 12 | 2 |
10 1000000007 | 123456789 |
44444 666013 | 235448 |
Explicaţie
In primul exemplu, baza de numeratie folosita in ValoareLand este 5, iar numarul scris pe bancnota cu fata Bossului este 1234 (in baza 5) . Avem 1234 (in baza 5) = 1 * 5 3 + 2 * 5 2 + 3 * 5 1 + 4 * 5 0 = 125 + 50 + 15 + 4 = 194 (in baza 10). Acest numar da restul 2 la impartirea cu 12.
In al doilea caz se intampla ca baza de numeratie folosita in ValoareLand sa coincida cu sistemul zecimal uzual, iar 123...(10 - 1) = 123456789.