Cod sursa(job #625470)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 24 octombrie 2011 19:45:19
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include<fstream>

using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");

int x,p;

int fastexp(int b, int n)
{
	if(n==0) return 1;
	if(n<0) return ((1/fastexp(b,-n))%1999999973);
	if(n%2)
		{ int q=fastexp(b,(n-1)/2);
		  return (b*(q*q)%1999999973)%1999999973;
		}
	int q=fastexp(b,n/2);
	return (q*q)%1999999973;
}

int main()
{
	f>>x>>p;
	g<<fastexp(x,p)<<'\n';
	f.close(); g.close();
	return 0;
}