Cod sursa(job #588179)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 7 mai 2011 10:33:28
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include<fstream.h>
#define N 1999999973
long long n,p,i=0,k,x,y;
int v[100000];
int main()
{ifstream f("lgput.in");
ofstream g("lgput.out");
f>>n>>p;
while(p!=0)
    v[i++]=p%2,p/=2;
x=n,y=n*n;
for(k=i-2;k>=0;k--)
if(v[k]==0)
    y=((x%N)*(y%N))%N,x=((x%N)*(x%N))%N;
else
    x=((x%N)*(y%N))%N,y=((y%N)*(y%N))%N;
g<<x%N;
f.close();
g.close();
return 0;}