Cod sursa(job #1324763)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 22 ianuarie 2015 19:27:17
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>

#define mod 1999999973

using namespace std;

int N, P, Answer;

void Solve() {

    Answer = 1;

    for(int mask = 1; mask <= P; mask <<= 1) {

        if(P & mask)
            Answer = (1LL * Answer * N) % mod;

        N = (1LL * N * N) % mod;
    }

}
void Read() {

    ifstream in("lgput.in");
    in >> N >> P;
    in.close();
}
void Write() {

    ofstream out("lgput.out");
    out << Answer << '\n';
    out.close();
}
int main() {

    Read();
    Solve();
    Write();

    return 0;
}