Cod sursa(job #2998487)

Utilizator Luka77Anastase Luca George Luka77 Data 9 martie 2023 16:44:44
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define FOR(WHATEVER) for(int i = 1; i <= WHATEVER; ++ i)

/// INPUT / OUTPUT
const string problem = "lgput";
ifstream fin("lgput.in");
ofstream fout("lgput.out");

/// GLOBAL VARIABLES
const long long NMAX = 1, MOD = 1999999973, INF = 1e9;
long long n, p;

/// SOLUTION
inline ll lgput(long nr, long exp)
{
    long long x = 1, y = nr;
    while(exp)
    {
        if((exp & 1) == 1)
        {
            x = (x * y) % MOD;
            x%=MOD;
        }
        y*=(y%MOD);
        y%=MOD;
        exp >>= 1;
    }
    return x;
}

/// READING THE INPUT
int main()
{
    ios::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);

    fin >> n >> p;

    fout << lgput(n, p);
}