104162024-04-01 22:59:49111Kiváló számok 2cpp17Accepted 100/1003ms3540 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

#define MOD 1000000007

int pow_mod(int x,int p){
	int r=1;
	while(p){
		if(p%2){
			r*=x;
			r%=MOD;
		}
		x*=x;
		x%=MOD;
		p/=2;
	}
	return r;
}

int inv_mod(int x){
	return pow_mod(x,MOD-2);
}

int geo_mod(int q,int n){
	return (pow_mod(q,n)-1)*inv_mod(q-1)%MOD;
}

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int T;
	cin>>T;
	while(T--){
		int N;
		cin>>N;
		int ans=0;
		if(N%2==0){
			ans=geo_mod(4,N/2);
			ans++;
		}
		else{
			ans=(geo_mod(4,N/2+1)-1)*inv_mod(2)%MOD;
		}
		cout<<ans<<'\n';
	}
	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1896 KiB
subtask213/13
2Accepted3ms2232 KiB
3Accepted3ms2360 KiB
subtask324/24
4Accepted3ms2524 KiB
5Accepted3ms2620 KiB
6Accepted2ms2832 KiB
7Accepted3ms3064 KiB
subtask434/34
8Accepted3ms3196 KiB
9Accepted3ms3288 KiB
10Accepted2ms3352 KiB
11Accepted2ms3332 KiB
subtask529/29
12Accepted2ms3336 KiB
13Accepted2ms3336 KiB
14Accepted2ms3332 KiB
15Accepted2ms3328 KiB
16Accepted2ms3336 KiB
17Accepted3ms3456 KiB
18Accepted2ms3540 KiB