Revizia anterioară Revizia următoare
| Fişierul intrare/ieşire: | lgput.in, lgput.out | Sursă | ad-hoc |
| Autor | Arhiva Educationala | 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
Ridicare la putere in timp logaritmic
Dandu-se doua numere naturale N si P, se cere sa se calculeze restul impartirii lui NP la 1999999973.
Date de intrare
Fisierul de intrare lgput.in va contine 2 numere N si P.
Date de iesire
In fisierul de iesire lgput.out va fi scris un singur numar reprezentand restul impartirii lui NP la 1999999973.
Restrictii
- 2 ≤ N, P ≤ 232
Exemplu
| lgput.in | lgput.out |
|---|---|
| 2 4 | 16 |
Indicatii de rezolvare
O solutie directa este cea prin inmultiri repetate. Aceasta solutie are complexitatea O(P) si obtine 30 de puncte.
O alta solutie este cea de a ridica la putere in timp logaritmic si are o complexitatea O(log2P). Descrierea acestui procedeu se gaseste pe wikipedia. Algoritmul se poate aplica si la matrici si polinoame.
Sursa de 100 de puncte se gaseste aici.
Poti vedea testele pentru aceasta problema accesand 