Cod sursa(job #533807)

Utilizator radubbRadu B radubb Data 14 februarie 2011 17:27:51
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>
using namespace std;

#define r 1999999973
long baza, exp, p = 1;

inline void citire()
{
	freopen("lgput.in","r",stdin);
	scanf("%ld %ld", &baza, &exp);
}

inline void afisare()
{
	freopen("lgput.out","w",stdout);
	printf("%ld", p);
}

void solve()
{
	while(exp)
	{
		if(exp%2)
		{
			exp--;
			p *= baza % r;
		}
		exp /= 2;
		baza *= baza % r;
	}
}

int main()
{
	citire();
	solve();
	afisare();
	return 0;
}