fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. long long power(long long base, long long exp, long long mod) {
  6. long long res = 1;
  7. base %= mod;
  8. while (exp > 0) {
  9. if (exp % 2 == 1) res = (unsigned __int128)res * base % mod;
  10. base = (unsigned __int128)base * base % mod;
  11. exp /= 2;
  12. }
  13. return res;
  14. }
  15.  
  16. int main() {
  17. ios_base::sync_with_stdio(false);
  18. cin.tie(NULL);
  19.  
  20. long long n, m, mod;
  21. if (cin >> n >> m >> mod) {
  22. long long N = n * m;
  23. long long term1 = (N - 1) % mod;
  24. long long p = power(2, N + 2, mod);
  25. long long term2 = (p + mod - (4 % mod)) % mod;
  26. long long ans = (unsigned __int128)term1 * term2 % mod;
  27. cout << ans << "\n";
  28. }
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0.01s 5292KB
stdin
3 3 117
stdout
89