Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define oo 999999999
- #define MOD 1000000007
- #define MAX 1000030
- using namespace std;
- typedef unsigned long long ull;
- int64_t n;
- int64_t dp[4];
- int64_t result;
- void output () {
- printf("%d\n", result);
- }
- int64_t mod (int64_t b) {
- if (b >= 0)
- return b % MOD;
- if (abs(b) <= MOD)
- return MOD + b;
- b = abs(b);
- int k = b / MOD;
- b = b - k * MOD;
- return MOD - b;
- }
- int64_t F (int n) {
- if (n)
- }
- int64_t T (int n) {
- if (n == 0)
- return 1;
- else
- return (3*T(n-1) + F(n-1)) % MOD;
- }
- void solve () {
- dp[0] = 1;
- dp[1] = 4;
- --n;
- for (int i = 2; i <= n; ++i) {
- dp[i%3] = mod(4 * dp[(i-1)%3] - dp[(i-2)%3]);
- }
- result = dp[n%3];
- }
- void input () {
- cin >> n;
- }
- int main () {
- // freopen("inp", "r", stdin);
- // freopen("out", "w", stdout);
- input();
- solve();
- output();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement