#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
if (n <= 0) {
cout << -1;
return 0;
}
vector<int> nums(n);
for (int i = 0; i < n; ++i) cin >> nums[i];
const int INF = -1e9;
vector<long long> dp(n, INF);
dp[0] = nums[0]; // 起点分数
for (int i = 0; i < n; ++i) {
if (dp[i] == INF) continue; // 到不了
for (int j = 1; j <= nums[i] && i + j < n; ++j) {
dp[i + j] = max(dp[i + j], dp[i] + nums[i + j]);
}
}
cout << (dp[n - 1] == INF ? -1 : dp[n - 1]);
return 0;
}

京公网安备 11010502036488号