Submission
Status:
PPPPxPPxPx
Subtask/Task Score:
70/100
Score: 70
User: Dark_kingdom
Problemset: Medulla
Language: cpp
Time: 1.468 second
Submitted On: 2026-10-15 21:01:42
#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;
}