fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const long long MOD=1e9+7;
  4. long long n,t;
  5. long long nhan(long long a, long long b, long long c)
  6. {
  7. if(b==0ll) return 0ll;
  8. long long t = nhan(a,b/2,c);
  9. if(b%2==0)
  10. {
  11. return (t+t)%c;
  12. }
  13. else
  14. {
  15. return ((t+t)%c + a%c)%c;
  16. }
  17. }
  18. long long mu (long long a, long long b, long long c)
  19. {
  20. if(b==0) return 1ll;
  21. long long t= mu(a,b/2,c);
  22. if(b%2==0)
  23. {
  24. return nhan(t,t,c);
  25. }
  26. else
  27. {
  28. return nhan(nhan(t,t,c),a,c);
  29. }
  30. }
  31. int main()
  32. {
  33. if(fopen("cperm.inp","r"))
  34. {
  35. freopen("cperm.inp","r",stdin);
  36. freopen("cperm.out","w",stdout);
  37. }
  38. cin >> t;
  39. while (t--)
  40. {
  41. cin >> n;
  42. if (n<=2)
  43. {
  44. cout << 0 << "\n";
  45. continue;
  46. }
  47. cout << mu(2,n-1,MOD)-2 << "\n";
  48. }
  49. }
  50.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Standard output is empty