Pagini recente » Cod sursa (job #1674285) | Istoria paginii utilizator/estiarte | Cod sursa (job #2046329) | Cod sursa (job #389901) | Cod sursa (job #2776940)
//
// Created by Andrei Covaci on 03.09.2021.
// https://infoarena.ro/problema/ciur
//
#include <fstream>
#include <iostream>
#include <vector>
#include <map>
#define INPUT "lgput.in"
#define OUTPUT "lgput.out"
//#define INPUT "input.in"
//#define OUTPUT "output.out"
using namespace std;
pair<long long, int> read() {
ifstream in(INPUT);
int a, b;
in >> a >> b;
in.close();
return pair<long long, int>(a, b);
}
long long solve(pair<long long, int> p) {
long long base = p.first;
int exp = p.second;
if (exp == 0)
return 1;
if (exp == 1)
return base % 1999999973;
if (exp == 2)
return base * base % 1999999973;
if (exp % 2 == 0)
return solve(pair<long long, int>(base * base, exp / 2)) % 1999999973;
else
return base * solve(pair<long long, int>(base * base, exp / 2)) % 1999999973;
}
void print(long long n) {
ofstream out(OUTPUT);
out << n % 1999999973;
out.close();
}
int main() {
auto nums = read();
auto res = solve(nums);
print(res);
return 0;
}