#include <bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
vector<int> arr(n);
for(int i = 0; i < n; i++){
cin >> arr[i];
}
vector<int> temp(n);
for(int i = 0; i < n; i++)
temp[i] = arr[i]-i;
unordered_map<int,int> mp;
for(int i = 0; i < n; i++){
mp[temp[i]] += arr[i];
}
int res = INT_MIN;
for(auto it : mp){
int val = it.second;
res = max(res, val);
}
cout << res;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuOyBjaW4gPj4gbjsKCXZlY3RvcjxpbnQ+IGFycihuKTsKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCWNpbiA+PiBhcnJbaV07Cgl9Cgl2ZWN0b3I8aW50PiB0ZW1wKG4pOwoJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKCXRlbXBbaV0gPSBhcnJbaV0taTsKCQoJdW5vcmRlcmVkX21hcDxpbnQsaW50PiBtcDsKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCW1wW3RlbXBbaV1dICs9IGFycltpXTsKCX0KCWludCByZXMgPSBJTlRfTUlOOwoJZm9yKGF1dG8gaXQgOiBtcCl7CgkJaW50IHZhbCA9IGl0LnNlY29uZDsKCQlyZXMgPSBtYXgocmVzLCB2YWwpOwoJfQoJY291dCA8PCByZXM7CglyZXR1cm4gMDsKfQ==