fork download
  1. #include <bits/stdc++.h> // Энэ нь маш олон санг багцалсан сан болно.
  2. // stdio, math, vector, string ...
  3. using namespace std;
  4.  
  5. long long mod;
  6.  
  7. long long solve(long long x, long long y) {
  8. if(y == 0) return 1;
  9. if(y == 1) return x%mod;
  10. long long ret = solve(x, y/2);
  11. ret = (ret*ret)%mod;
  12. if( y%2 ) ret = (ret*x)%mod;
  13. return ret;
  14. }
  15.  
  16. int main() {
  17. string x, y;
  18. cin >> x >> y >> mod; //3 тоогоо уншлаа
  19.  
  20. long long a = 0, b = 0, now = 1;
  21. // a-д a%mod хадгална
  22. // b-д b%mod-1 хадгална
  23. // now нь 10 зэргийг mod-д модулдсан тоо бөгөөд
  24. // анх 10^0 = 1 байна
  25.  
  26. for(int i = x.size()-1; i >= 0; i--) {
  27. a = (a + (x[i] - '0')*now)%mod;
  28. now = (now*10)%mod;
  29. }
  30.  
  31. now = 1;
  32. for(int i = y.size()-1; i >= 0; i--) {
  33. b = (b + (y[i] - '0')*now)%(mod-1);
  34. now = (now*10)%(mod-1);
  35. }
  36.  
  37. cout << solve(a, b) << endl;
  38. return 0;
  39. }
Success #stdin #stdout 0s 15240KB
stdin
2 4 37
stdout
16