Submission #19363

#TimeUsernameProblemLanguageResultExecution timeMemory
19363ekfrl0526Α (kriii4_P1)C++14
100 / 100
0 ms1720 KiB
#include<bits/stdc++.h> using namespace std; long long x, a; const long long divs = 1000000007; vector<long long> as; void initial() { long long ia = a;; for (int i = 0; i < 64; i++) { if (ia >= divs) ia = ia%divs; as.push_back(ia); ia *= ia; } } int main() { scanf("%lld %lld", &a, &x); initial(); int c=0; long long result = 1; while (x > 0) { if (x % 2 == 1) { result *= as[c]; result %= divs; } x /= 2; c++; } cout << result << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...