#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; }