Cod sursa(job #606108)

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