Submission #19368

#TimeUsernameProblemLanguageResultExecution timeMemory
19368golala123Α (kriii4_P1)C++98
0 / 100
0 ms1720 KiB
#include <iostream> #include <stdio.h> #include <vector> using namespace std; long long a, x; long long ans = 1; int temp = 1; vector<long long> m; vector< pair<int , int > > two; const int MOD = 1000000007; int main(){ cin >> a >> x; a %= MOD; x %= MOD; int temp = 1; int i = 0; m.push_back(a); while (temp <= x){ long long aa = 1; aa = m[i]%MOD * m[i]%MOD; aa %= MOD; m.push_back(aa%MOD); temp *= 2; i++; } int j = 0; while (x != 0){ if (x%2 == 1) two.push_back({ j, x % 2 }); x /= 2; j++; } for (int i = 0; i < two.size(); i++){ if (two[i].second == 1){ ans = ans*m[two[i].first] % MOD; ans %= MOD; } } cout << ans % MOD; }
#Verdict Execution timeMemoryGrader output
Fetching results...