Cod sursa(job #2041091)

Utilizator patcasrarespatcas rares danut patcasrares Data 16 octombrie 2017 20:43:01
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<fstream>
#include<queue>
#include<vector>
#define DN 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long n,p,t,r=1,rez=1;
int main()
{
    fin>>n>>p;
    while(p)
    {
        t=1;
        r=n%DN;
        while(1)
        {
            if(2*t>p)
                break;
            r=(r*r)%DN;
            t*=2;
        }
        p-=t;
        rez=(rez*r)%DN;
    }
    fout<<rez;
}