Cod sursa(job #574632)

Utilizator Rares95Rares Arnautu Rares95 Data 7 aprilie 2011 13:07:08
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
	
  # include <fstream>
  # define MOD 1999999973
	using namespace std;
	
	int n, k;
	
	long long ridicare ( int a, int b ) {
		long long sol = 1, prod = a;
		for ( int i = 0; ( 1 << i ) <= b; ++i ) {
			if ( ( 1 << i ) & b ) sol = ( sol * prod ) % MOD;
			prod = ( prod * prod ) % MOD;
		}
		return sol;
	}
	
	int main () {
		
		std :: ifstream f ( "lgput.in" );
		std :: ofstream g ( "lgput.out");
		
		f >> n >> k;
		
		g << ridicare ( n, k ) << '\n';
		
		g.close ();
		return 0;
		
	}