Cod sursa(job #3357296)

Utilizator malita.dragosMalita Dragos-Ionut malita.dragos Data 8 iunie 2026 17:23:48
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.41 kb
#include <fstream>

using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

#define NR 1999999973

long long exp(long long N, long long P){
    if(P < 0) return exp(1.0/N,-P);
    if(P == 0) return 1;
    if(P%2 == 0) return exp((N*N)%NR,P/2)%NR;
    return ((N%NR) * exp(N*N,P/2)%NR)%NR;
}

int main()
{
    long long N,P;
    fin>>N>>P;
    fout<<exp(N,P);
    return 0;
}