#include<stdio.h>
int t;
long long max;
int n,arr[200005];
long long ans[200005];
long long f(int x)
{
    if(x>n) return 0;
    if(ans[x]) return ans[x];
    return ans[x]=f(x+arr[x])+arr[x];
}
int main()
{
    scanf("%d",&t);
    for(int j=1; j<=t; j++)
    {
        max=0;
        scanf("%d",&n);
        for(int i=1; i<=n; i++)
            scanf("%d",&arr[i]);
        long long temp;
        for(int i=1; i<=n; i++)
            if(!ans[i])
                max=(max>f(i))?max:f(i);
        printf("%lld\n",max);
        for(int i=1; i<=n; i++)
            ans[i]=0;
    }
    return 0;
}
