mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
47 lines
1.0 KiB
C++
47 lines
1.0 KiB
C++
|
#include<stdio.h>
|
||
|
#include<string.h>
|
||
|
#include<stdlib.h>
|
||
|
#include<algorithm>
|
||
|
#include<iostream>
|
||
|
#include<queue>
|
||
|
#include<map>
|
||
|
#include<stack>
|
||
|
#include<set>
|
||
|
#include<math.h>
|
||
|
using namespace std;
|
||
|
typedef long long int64;
|
||
|
typedef pair<int64,int64> PII;
|
||
|
#define MP(a,b) make_pair((a),(b))
|
||
|
const int maxn = 100015;
|
||
|
const int inf = 0x7fffffff;
|
||
|
const double pi=acos(-1.0);
|
||
|
const double eps = 1e-8;
|
||
|
const int64 mod = 1000000000+7;
|
||
|
int64 Fast_Pow( int64 a,int64 n,int64 mod ){
|
||
|
int64 res = 1;
|
||
|
while( n>=1 ){
|
||
|
if( n&1 ){
|
||
|
res = res*a%mod;
|
||
|
}
|
||
|
a = a*a%mod;
|
||
|
n >>= 1;
|
||
|
}
|
||
|
return res%mod;
|
||
|
}
|
||
|
int64 GetNum( char str[],int64 mod ){
|
||
|
int64 res = 0;
|
||
|
int len = strlen( str );
|
||
|
for( int i=0;i<len;i++ ){
|
||
|
res = (res*10+str[i]-'0')%mod;
|
||
|
}
|
||
|
return res;
|
||
|
}
|
||
|
int main(){
|
||
|
char str[ maxn ];
|
||
|
while( scanf("%s",str)!=EOF ){
|
||
|
int64 n = GetNum( str,mod-1 );
|
||
|
printf("%I64d\n",Fast_Pow( 2,(n-1+mod)%mod,mod ));
|
||
|
}
|
||
|
return 0;
|
||
|
}
|