Submission

Status:

PPPPxTTxTx

Subtask/Task Score:

40/100

Score: 40

User: Dark_kingdom

Problemset: Medulla

Language: cpp

Time: 2.593 second

Submitted On: 2026-10-15 21:04:13

#include <iostream>
using namespace std;
long long a[7500000] = {0};
long long MOD = 20011;
long long f(long long x)
{
	if (x<=2) return (x*x*x)%MOD;
	if(a[x] > 0) return a[x];
	
	long long term1 = f(x-3);
	long long term1_cubed = (term1*term1)%MOD;
	term1_cubed = (term1_cubed*term1) %MOD;
	long long term2 = f(x-2)*f(x-1) % MOD;
	return a[x] = (term1_cubed + term2) % MOD;
}

int main()
{
//	cin.tie(nullptr)->sync_with_stdio(false);
	long long n;
	if (!(cin>>n)) return 0;
	for(long long i =0; i<n; i++)
	{
		long long x;
		cin>>x;
		if(x>7500000 || x<0)
		{
			continue;
		}
		cout<<f(x)<<"\n";
	}
	
	return 0;
}