fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using std::string;
  5.  
  6. #define ll long long int
  7. ll powerLL(ll x, ll n,ll MOD)
  8. {
  9.  
  10. ll result = 1;
  11.  
  12.  
  13. while (n) {
  14. if (n & 1)
  15. result = result * x % MOD;
  16. n = n / 2;
  17. x = x * x % MOD;
  18. }
  19. return result;
  20. }
  21.  
  22.  
  23. ll powerStrings(string sa, string sb,ll MOD)
  24. {
  25.  
  26.  
  27. ll a = 0, b = 0;
  28.  
  29.  
  30. for (size_t i = 0; i < sa.length(); i++)
  31. a = (a * 10 + (sa[i] - '0')) % MOD;
  32.  
  33. for (size_t i = 0; i < sb.length(); i++)
  34. b = (b * 10 + (sb[i] - '0')) % 2146980;
  35.  
  36. return powerLL(a, b,MOD);
  37. }
  38.  
  39. int main() {
  40. std::cout << powerStrings("5109109785634228366587086207094636370893763284000","362323789",354252525) << "\n";
  41. }
Success #stdin #stdout 0s 4356KB
stdin
Standard input is empty
stdout
323419500