Rezolvare completă PbInfo #2398 Moka

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 Adresa de email.

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!