#include <bits/stdc++.h>
using namespace std;
void fileIO()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
struct SparseTable
{
vector<vector<int>> table;
vector<int> lg;
vector<int> v;
SparseTable(int n, vector<int> &v) : v(v)
{
lg = vector<int>(n + 1);
lg[1] = 0;
for (int i = 2; i <= n; i++)
lg[i] = lg[i / 2] + 1;
table = vector<vector<int>>(n + 2, vector<int>(lg[n] + 2));
for (int i = 0; i < n; i++)
table[i][0] = i;
for (int j = 1; j <= lg[n]; j++)
{
for (int i = 0; i + (1 << (j - 1)) < n; i++)
{
if (v[table[i][j - 1]] <= v[table[i + (1 << (j - 1))][j - 1]])
table[i][j] = table[i][j - 1];
else
table[i][j] = table[i + (1 << (j - 1))][j - 1];
// table[i][j] = min(table[i][j - 1], table[i + (1 << (j - 1))][j - 1]);
}
}
}
int query(int l, int r)
{
int g = lg[r - l + 1];
if (v[table[l][g]] <= v[table[r - (1 << g) + 1][g]])
return table[l][g];
return table[r - (1 << g) + 1][g];
}
};
long long sum(int x)
{
return x * 1ll * (x + 1) / 2;
}
void Striker()
{
int n;
cin >> n;
int a[n];
vector<int> v(n);
for (int i = 0; i < n; i++)
{
cin >> a[i];
v[i] = a[i];
}
SparseTable table(n, v);
long long dp[n + 2]{};
for (int i = n - 1; ~i; i--)
{
int st = i, en = min(n - 1, a[i] + i), idx = i;
// cout << table.query(0, n - 1) << ' ';
while (st <= en)
{
int mid = st + en >> 1;
auto tmp = table.query(i, mid);
if (v[tmp] >= a[i] - (tmp - i)) // min value in range should be less than min value I will effect
{
idx = mid;
st = mid + 1;
}
else
{
en = mid - 1;
}
}
// cout << idx << '\n';
int sz = idx - i + 1;
dp[i] = sum(a[i]) - sum(a[i] - sz);
if (idx < min(n - 1, a[i] + i))
dp[i] += dp[idx + 1];
}
cout << *max_element(dp, dp + n) << '\n';
}
signed main()
{
fileIO();
int _t = 1;
cin >> _t;
for (int i = 0; i < _t; ++i)
{
Striker();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGZpbGVJTygpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGNvdXQudGllKG51bGxwdHIpOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKfQoKc3RydWN0IFNwYXJzZVRhYmxlCnsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gdGFibGU7CiAgICB2ZWN0b3I8aW50PiBsZzsKICAgIHZlY3RvcjxpbnQ+IHY7CiAgICBTcGFyc2VUYWJsZShpbnQgbiwgdmVjdG9yPGludD4gJnYpIDogdih2KQogICAgewogICAgICAgIGxnID0gdmVjdG9yPGludD4obiArIDEpOwogICAgICAgIGxnWzFdID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyBpKyspCiAgICAgICAgICAgIGxnW2ldID0gbGdbaSAvIDJdICsgMTsKICAgICAgICB0YWJsZSA9IHZlY3Rvcjx2ZWN0b3I8aW50Pj4obiArIDIsIHZlY3RvcjxpbnQ+KGxnW25dICsgMikpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgICAgICB0YWJsZVtpXVswXSA9IGk7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbGdbbl07IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICsgKDEgPDwgKGogLSAxKSkgPCBuOyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICh2W3RhYmxlW2ldW2ogLSAxXV0gPD0gdlt0YWJsZVtpICsgKDEgPDwgKGogLSAxKSldW2ogLSAxXV0pCiAgICAgICAgICAgICAgICAgICAgdGFibGVbaV1bal0gPSB0YWJsZVtpXVtqIC0gMV07CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgdGFibGVbaV1bal0gPSB0YWJsZVtpICsgKDEgPDwgKGogLSAxKSldW2ogLSAxXTsKICAgICAgICAgICAgICAgIC8vIHRhYmxlW2ldW2pdID0gbWluKHRhYmxlW2ldW2ogLSAxXSwgdGFibGVbaSArICgxIDw8IChqIC0gMSkpXVtqIC0gMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaW50IHF1ZXJ5KGludCBsLCBpbnQgcikKICAgIHsKICAgICAgICBpbnQgZyA9IGxnW3IgLSBsICsgMV07CiAgICAgICAgaWYgKHZbdGFibGVbbF1bZ11dIDw9IHZbdGFibGVbciAtICgxIDw8IGcpICsgMV1bZ11dKQogICAgICAgICAgICByZXR1cm4gdGFibGVbbF1bZ107CgogICAgICAgIHJldHVybiB0YWJsZVtyIC0gKDEgPDwgZykgKyAxXVtnXTsKICAgIH0KfTsKCmxvbmcgbG9uZyBzdW0oaW50IHgpCnsKICAgIHJldHVybiB4ICogMWxsICogKHggKyAxKSAvIDI7Cn0KCnZvaWQgU3RyaWtlcigpCnsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBpbnQgYVtuXTsKICAgIHZlY3RvcjxpbnQ+IHYobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICB2W2ldID0gYVtpXTsKICAgIH0KICAgIFNwYXJzZVRhYmxlIHRhYmxlKG4sIHYpOwogICAgbG9uZyBsb25nIGRwW24gKyAyXXt9OwogICAgZm9yIChpbnQgaSA9IG4gLSAxOyB+aTsgaS0tKQogICAgewogICAgICAgIGludCBzdCA9IGksIGVuID0gbWluKG4gLSAxLCBhW2ldICsgaSksIGlkeCA9IGk7CiAgICAgICAgLy8gY291dCA8PCB0YWJsZS5xdWVyeSgwLCBuIC0gMSkgPDwgJyAnOwogICAgICAgIHdoaWxlIChzdCA8PSBlbikKICAgICAgICB7CiAgICAgICAgICAgIGludCBtaWQgPSBzdCArIGVuID4+IDE7CiAgICAgICAgICAgIGF1dG8gdG1wID0gdGFibGUucXVlcnkoaSwgbWlkKTsKCiAgICAgICAgICAgIGlmICh2W3RtcF0gPj0gYVtpXSAtICh0bXAgLSBpKSkgLy8gbWluIHZhbHVlIGluIHJhbmdlIHNob3VsZCBiZSBsZXNzIHRoYW4gbWluIHZhbHVlIEkgd2lsbCBlZmZlY3QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWR4ID0gbWlkOwogICAgICAgICAgICAgICAgc3QgPSBtaWQgKyAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW4gPSBtaWQgLSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIGNvdXQgPDwgaWR4IDw8ICdcbic7CiAgICAgICAgaW50IHN6ID0gaWR4IC0gaSArIDE7CiAgICAgICAgZHBbaV0gPSBzdW0oYVtpXSkgLSBzdW0oYVtpXSAtIHN6KTsKICAgICAgICBpZiAoaWR4IDwgbWluKG4gLSAxLCBhW2ldICsgaSkpCiAgICAgICAgICAgIGRwW2ldICs9IGRwW2lkeCArIDFdOwogICAgfQogICAgY291dCA8PCAqbWF4X2VsZW1lbnQoZHAsIGRwICsgbikgPDwgJ1xuJzsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICBmaWxlSU8oKTsKICAgIGludCBfdCA9IDE7CiAgICBjaW4gPj4gX3Q7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IF90OyArK2kpCiAgICB7CiAgICAgICAgU3RyaWtlcigpOwogICAgfQp9