fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const long long MOD=1e9+7;
  4. long long n;
  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. ios_base::sync_with_stdio(0);
  34. cin.tie(0);
  35. cin >> n;
  36. long long du0 = n/3;
  37. long long du1= n/3 + (n%3>0);
  38. long long du2= n/3 + (n%3>1);
  39. long long ans0= mu(4,du0,MOD);
  40. long long ans1= mu(3,du1,MOD);
  41. long long ans2 =mu(3,du2,MOD);
  42. cout << nhan(nhan(ans0,ans1,MOD),ans2,MOD);
  43. }
  44.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
1