链接:https://ac.nowcoder.com/acm/contest/4381/A

牛牛特别羡慕那些会计数的选手,作为一个计数非常菜的选手,牛牛也想计数变得这么厉害,然而实在是太菜了。

   牛牛最近又被一个简单计数题难住了,这个题目是这样的,现在有红,蓝,黑,白四种颜色的球无数种。牛牛现在想数有多少种长度为nn的序列满足红色和蓝色的球的数量都是偶数个,黑色和白色的球的数量都是奇数个。

    由于这样的序列的个数可能太多了,你只需要输出在模1e9+71e9+7之后的答案就可以了。

输入描述:

一行一个nn表示序列的长度.

输出描述:

 

一个整数表示在模1e9 + 71e9+7之后的答案.

 

示例1

输入

复制

10

输出

复制

131072

备注:

1 \leq n \leq 1e181≤n≤1e18

代码:

#include<bits/stdc++.h>
using namespace std;
long long n,t,s,m,k,d,flag,mod=1e9+7;
long long quick_pow(long long a,long long b)
{
    long long ret = 1;
    while (b)
    {
        if (b & 1)
        {
            ret *= a;
            ret %= mod;
        }
        b >>= 1;
        a *= a;
        a %= mod;
    }
    return ret;
}
int main()
{
     cin>>n;
     if(n%2==1)
     cout<<0;
     else
     {
        if(n==2)
        cout<<1;
        else
        {
            k=n/2;
            k=k*4-3;
            cout<<quick_pow(2,k);
        }
     }
}