#include <stdio.h>

int solve ();
int check_position (int i, int length, int *maxresult, int array[200000][2]);

int solve()
{
    int maxresult=0,n,i;
    int array[200000][2];

    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d", &array[i][0]);
        array[i][1]=0;
    }
    for(i=0;i<n;i++) check_position(i,n,&maxresult,array);
    printf("%d\n", maxresult);
    return 0;
}

int check_position (int i, int length, int *maxresult, int array[200000][2])
{
    int tempresult =0;
    while (i < length){
        if (array[i][1]) return 0;
        tempresult += array[i][0];
        array[i][1] = 1;
        i += array[i][0];
    }
    if (tempresult > *maxresult) *maxresult = tempresult;
    return 0;
}

int main()
{
    int t;
    scanf("%d", &t);
    while(t--) solve();
    return 0;
}
