Submission #19497

#TimeUsernameProblemLanguageResultExecution timeMemory
19497min050820Α (kriii4_P1)C++14
100 / 100
0 ms1716 KiB
#include <iostream> using namespace std; long long a,x; const long long mod=1000000007; // dp[n] = N ^ (2^n) long long pow_dpTable[100]; long long pow(long long N,long long P){ pow_dpTable[0]=N; long long mask=1; long long result=1; int i; for(i=1;mask <= P;i++){ pow_dpTable[i]=(pow_dpTable[i-1] * pow_dpTable[i-1])%mod; mask<<=1; } mask=1; for(i=0;mask <= P;i++){ if(P&mask){ result = (result * pow_dpTable[i]) % mod; } mask<<=1; } return result; } int main() { cin >> a >> x; a%=mod; cout << pow(a,x); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...