一道dp,不知道为啥一直过不了,求看看

https://vjudge.net/contest/476610#problem/A
这是题目

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f,n;
int ret[105];
int ff[10005];
int fn(int n) {
    if (n == 0) return a;
    if (n == 1) return b;
    if (n == 2) return c;
    if (n == 3) return d;
    if (n == 4) return e;
    if (n == 5) return f;
}
int main()
{
    int t;
    scanf("%d",&t);
    for(int i=1;i<=t;i++)
    {
        scanf("%d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&n);
        if(n<=5)ret[i]=fn(n);
        else
        {
            ff[0]=a;ff[1]=b;ff[2]=c;ff[3]=d;ff[4]=e;ff[5]=f;
            for(int j=6;j<=n;j++)
            {
                ff[j]=ff[j-1]%10000007+ff[j-2]%10000007+ff[j-3]%10000007+ff[j-4]%10000007+ff[j-5]%10000007+ff[j-6]%10000007;
            }
            ret[i]=ff[n]%10000007;
        }
    }
    for(int i=1;i<=t;i++)
    {
        printf("Case%d:%d\n",i,ret[i]);
    }
    return 0;
}

试试这个改成long

img