Cod sursa(job #864094)

Utilizator acomAndrei Comaneci acom Data 24 ianuarie 2013 17:46:55
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include<fstream>
using namespace std;
#define Mod 1999999973
ifstream f("lgput.in");
ofstream g("lgput.out");
long long n,p;
long long exp(int k)
{
    long long t;
    if (k==1) return n;
    else if (k%2==0)
    {
        t=exp(k>>1);
        return ((t%Mod)*(t%Mod))%Mod;
    }
    else return (((exp(k-1))%Mod)*n)%Mod;
}
int main()
{
    f>>n>>p;
    g<<exp(p)<<'\n';
    return 0;
}