#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e5 + 10;
ll bit[MAXN], dp[MAXN];
void update(int idx, ll val) {
for (; idx < MAXN; idx += idx & -idx) {
bit[idx] = max(bit[idx], val);
}
}
ll query(int idx) {
ll res = 0;
for (; idx > 0; idx -= idx & -idx) {
res = max(res, bit[idx]);
}
return res;
}
int main() {
int T;
scanf("%d", &T);
while (T--) {
int n;
scanf("%d", &n);
fill(bit, bit + MAXN, 0);
fill(dp, dp + MAXN, 0);
ll a[MAXN];
for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
for (int i = n; i; i--) {
dp[i] = a[i];
int l = i + 1;
int r = min(i + a[i], (ll)n);
dp[i] = max(dp[i], query(r));
update(i, dp[i]);
update(l, a[i]);
}
printf("%lld\n", dp[1]);
}
return 0;
}