Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. /*
  2.     Author: bin
  3.     Created:2019/10/17 21:50:01
  4. */
  5. #pragma GCC optimize(2)
  6. #include <bits/stdc++.h>
  7. #define endl '\n'
  8. #define INF 0x3f3f3f3f
  9. #define debug(x) cout<< #x " = "<<(x)<<endl;
  10. #define pc(x) putchar(x)
  11. using namespace std;
  12. typedef long long ll;
  13. template<typename T> void read(T &x){
  14.     x = 0; int f = 1; char ch = getchar();
  15.     while(!isdigit(ch) ) ch = getchar();
  16.     while( isdigit(ch) ) {x = x * 10 + ch - 48; ch = getchar();}
  17.     x *= f;
  18. }
  19. template<typename T, typename... Args> void read(T& x, Args&... args)
  20. { read(x), read(args...); }
  21. template<typename T> void write(T x) {
  22.     if(x < 0) putchar('-'), write(-x);
  23.     if(x > 9) write(x / 10);
  24.     putchar(x % 10 + '0');
  25. }
  26. template<typename T, typename... Args> void write(T& x, Args&... args)
  27. { write(x),putchar(' '), write(args...),putchar('\n'); }
  28. #define int ll
  29.  
  30. const ll MOD=1e9+7;
  31.  
  32.  
  33. ll fpow(ll x,ll y)
  34. {
  35.     ll ans = 1;
  36.     while(y)
  37.     {
  38.         if(y & 1) ans = ans*x%MOD;    
  39.         x = x * x %MOD;
  40.         y >>= 1;
  41.     }
  42.     return ans;
  43. }
  44.  
  45. signed main()
  46. {
  47.     ll n,m,ans=0;
  48.     read(n,m);
  49.     ans=fpow(2,m)-1;
  50.     ans=fpow(ans,n);
  51.     ans%=MOD;
  52.     if(m!=1)
  53.     write(ans);
  54.     else
  55.     write(n);
  56.     pc(endl);
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement