Cod sursa(job #2662342)

Utilizator ARobertAntohi Robert ARobert Data 23 octombrie 2020 21:48:45
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>
#define int long long int
#define mod 1999999973

using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

int lgpow(int n, int p)
{
    int t,res=1;
    while (p)
    {
        if (p%2==0)
        {
            p/=2;
            t=n%mod;
            n=(t*t)%mod;
        }
        else
        {
            p--;
            res=(res*n)%mod;
        }
    }
    return res;
}

int32_t main()
{
    ios_base::sync_with_stdio(false);
    int n,p;
    fin>>n>>p;
    fout<<lgpow(n,p);
    return 0;
}

//Long long output!!!!
//Check the constraints!!!