# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
19349 | 2016-02-24T10:23:06 Z | bshnet | Α (kriii4_P1) | C++ | 0 ms | 0 KB |
#include <iostream> #define MOD (1000000007) using namespace std; int pow(int64_t a, int64_t x) { int64_t sq[64]; int ans = 1; sq[0] = (a % MOD); for(int i = 1; i <= 64; ++i) { if(x & 0x01) ans = (ans * sq[i-1]) % MOD; x >>= 1; if(!x) break; sq[i] = (sq[i-1] * sq[i-1]) % MOD; } return ans; } int main(void) { int64_t A, X; cin >> A >> X; cout << pow(A, X) << endl; return 0; }