Cod sursa(job #2633018)

Utilizator alex.prohnitchiAlex Prohnitchi alex.prohnitchi Data 6 iulie 2020 12:03:12
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

typedef long long ll;

const ll mod=1999999973;

#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define rc(x)  return cout<<x<<"\n",0
#define sz(s)  (int) s.size()
#define pb push_back
#define mp make_pair
#define fr first
#define sc second

using namespace std;

ll t;
ll poww(ll n, ll p) {
	int result=1;
	while (p>0) {
		if (p%2==1)result*=n;
		n=n*n;	
		p/=2;
	}
	return result;
}

int main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	ifstream cin("lgput.in");
	ofstream cout("lgput.out");
	ll n,p;
	cin >> n >> p;
	ll result=poww(n,p);
	cout << result%mod << '\n';

}