Submission

Status:
PPPxxxxxxx

Score: 30

User: Jibhong

Problemset: Medulla

Language: cpp

Time: 0.453 second

Submitted On: 2024-12-13 19:40:57

#include <bits/stdc++.h>
using namespace std;

#define ll long long

map <int,ll> mem;
int fn[20020];

ll func(ll x){
    if(mem.count(x))return mem[x];
    return mem[x] = ((func(x-3)*func(x-3)*func(x-3))%20011+(func(x-2)*func(x-1))%20011)%20011;
}

int main(){

    ios::sync_with_stdio(0);
    cin.tie(0);

    mem[0]=0;
    mem[1]=1;
    mem[2]=8;

    fn[0]=0;
    fn[1]=1;
    fn[2]=8;

    int n;
    cin>>n;
    // int last=3;
    while(n--){
        ll inp;
        cin>>inp;
    //     for(int i=last;i<=inp;++i){
    //         if(fn[i%20011]){
    //             mem[i]=fn[i%20011];
    //         }else{
    //             mem[i]=((mem[i-3]*mem[i-3]*mem[i-3])%20011+(mem[i-2]*mem[i-1])%20011)%20011;
    //             fn[i%20011]=mem[i];
    //         }
    //     }
    //     last=max(last,inp);
    //     cout<<mem[inp]<<"\n";
        cout<<func(inp)<<"\n";
    }

    return 0;
}