Cod sursa(job #1911977)

Utilizator radu.leonardoThe Doctor radu.leonardo Data 7 martie 2017 22:29:43
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>
#define MOD 1999999973
using namespace std;
long long x,n;

long long pow(long long x,long long n)
{
    if(n<0) x=1/x,n=-n;
    if(n==0) x=1;
    while(n>1)
        if(n%2==0) x*=x,x%=1999999973,n=n/2;
        else       y*=x,y%=1999999973,x*=x,x%=1999999973,n=(n-1)/2;

    return x*y%MOD;
}

void read()
{
    ifstream f("lgput.in");
    f>>x>>n;
    f.close();
}

void write()
{
    ofstream g("lgput.out");
    g<<pow(x,n);
    g.close();
}


int main()
{
    read();
    write();
}