Cod sursa(job #2787530)

Utilizator mihai03Mihai Grigore mihai03 Data 23 octombrie 2021 17:22:07
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.19 kb
// Mihai Grigore
#include <bits/stdc++.h>

using namespace std;

#define EPS 1e-9
#define PI 3.141592653589793
#define MOD 1999999973
#define ll long long
#define ull unsigned long long
#define INF (ll)1e9
#define maxx (ll)(1e3 + 5)
#define nl "\n"
#define pb push_back
#define mk make_pair
#define pii pair<int, int>
#define a first
#define b second
#define vi vector<int>
#define all(x) (x).begin(), x.end()
#define umap unordered_map
#define uset unordered_set
#define imax INT_MAX
#define imin INT_MIN
#define sz(x) int((x).size())
#define aim(x) fixed << setprecision(x)

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

ll n, p;

void read() {
	f >> n >> p;
}	

ll exp(ll a, ll b)
{
	ll p = 1;
	while (b)
	{
		if (b & 1)
			p = (p * a) % MOD;
		a = (a * a) % MOD;
		b /= 2;
	}
	return p;
}

void solve() {
	g << exp(n, p);
}

void afisare() {

}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	read();
	solve();

	/*
	read();
	solve();
	afisare();
	*/

	/*
	int t, i = 1;
	cin >> t;
	while(t--) {
		// read();
		// cout << "Case #" << i << ": \n";
		solve();
		// cout << nl;
	}
	*/
	
	
	return 0;
}