Enunț
Moca dorește să posteze pe Pbinfo a
probleme de dificultate b
. Durata postării celor a
probleme de dificultate b
este restul împărțirii lui \(a ^ b\) la 1999999973
.
Cerinta
Ajutați-l pe Moca să calculeze durata postării celor a
probleme de dificultate b
.
Date de intrare
Fișierul de intrare moka.in
conține pe prima linie numerele a b
, cu semnificația din enunț.
Date de ieșire
Fișierul de ieșire moka.out
va conține pe prima linie numărul S
, reprezentând restul împărțirii lui \(a ^ b\)
la 1999999973
.
Restricții și precizări
2 ≤ a,b ≤ 4294967296
Exemplu
moka.in
2 4
moka.out
16
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Moka:
#include <fstream>
#define mod 1999999973
using namespace std;
ifstream fin("moka.in");
ofstream fout("moka.out");
int main()
{
long long a, b;
fin >> a >> b;
long long p = a;
long long ans = 1;
long long exp = 1;
while(exp <= b){
if(exp & b){
ans *= p;
ans %= mod;
}
p = (p % mod * p % mod) % mod;
p %= mod;
exp *= 2;
}
fout << ans << '\n';
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2398 Moka
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2398 Moka de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!