Advertisement
pdaogu

Untitled

Jan 13th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define oo 999999999
  3. #define MOD 1000000007
  4. #define MAX 1000030
  5.  
  6. using namespace std;
  7. typedef unsigned long long ull;
  8.  
  9. int64_t n;
  10. int64_t dp[4];
  11. int64_t result;
  12.  
  13. void output () {
  14. printf("%d\n", result);
  15. }
  16.  
  17.  
  18. int64_t mod (int64_t b) {
  19. if (b >= 0)
  20. return b % MOD;
  21. if (abs(b) <= MOD)
  22. return MOD + b;
  23. b = abs(b);
  24. int k = b / MOD;
  25. b = b - k * MOD;
  26. return MOD - b;
  27. }
  28.  
  29. int64_t F (int n) {
  30. if (n)
  31. }
  32.  
  33. int64_t T (int n) {
  34. if (n == 0)
  35. return 1;
  36. else
  37. return (3*T(n-1) + F(n-1)) % MOD;
  38. }
  39.  
  40. void solve () {
  41. dp[0] = 1;
  42. dp[1] = 4;
  43. --n;
  44. for (int i = 2; i <= n; ++i) {
  45. dp[i%3] = mod(4 * dp[(i-1)%3] - dp[(i-2)%3]);
  46. }
  47. result = dp[n%3];
  48. }
  49.  
  50.  
  51. void input () {
  52. cin >> n;
  53. }
  54.  
  55. int main () {
  56. // freopen("inp", "r", stdin);
  57. // freopen("out", "w", stdout);
  58. input();
  59. solve();
  60. output();
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement