fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using ll = long long;
  4. #define FOR(i,a,b) for(ll i = (a);i <= (b);i++)
  5. #define FOD(i,a,b) for(ll i = (b);i >= (a);i--)
  6. #define el '\n'
  7. const ll mang = 1e7 + 5;
  8. const ll MAX = 1e18;
  9. const ll MOD = 1e9 + 7;
  10. ll n,k;
  11. int main(){
  12. cin.tie(0) -> sync_with_stdio(0);
  13. // freopen("TREE.INP","r",stdin);
  14. // freopen("TREE.OUT","w",stdout);
  15. cin >> n;
  16. ll prev0 = 1,prev1 = 0,prev2 = 0,prev3 = 0;
  17. FOR(i,1,n){
  18. ll x0 = prev0;
  19. ll x1 = prev1;
  20. ll x2 = prev2;
  21. ll x3 = prev3;
  22. prev0 = (x1 + x2 + x3) % MOD;
  23. prev1 = (x0 + x2 + x3) % MOD;
  24. prev2 = (x0 + x1 + x3) % MOD;
  25. prev3 = (x0 + x1 + x2) % MOD;
  26.  
  27. }
  28. cout << prev0;
  29.  
  30. }
  31.  
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
1