10416 2024. 04. 01 22:59:49 111 Kiváló számok 2 cpp17 Elfogadva 100/100 3ms 3540 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;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1896 KiB
subtask2 13/13
2 Elfogadva 3ms 2232 KiB
3 Elfogadva 3ms 2360 KiB
subtask3 24/24
4 Elfogadva 3ms 2524 KiB
5 Elfogadva 3ms 2620 KiB
6 Elfogadva 2ms 2832 KiB
7 Elfogadva 3ms 3064 KiB
subtask4 34/34
8 Elfogadva 3ms 3196 KiB
9 Elfogadva 3ms 3288 KiB
10 Elfogadva 2ms 3352 KiB
11 Elfogadva 2ms 3332 KiB
subtask5 29/29
12 Elfogadva 2ms 3336 KiB
13 Elfogadva 2ms 3336 KiB
14 Elfogadva 2ms 3332 KiB
15 Elfogadva 2ms 3328 KiB
16 Elfogadva 2ms 3336 KiB
17 Elfogadva 3ms 3456 KiB
18 Elfogadva 2ms 3540 KiB