maneedhar
3/8/2020 - 6:53 PM

Fountain

#include <bits/stdc++.h>

using namespace std;

int func(vector<int>v, int n){
    vector<int>p(n);
    int count = 1;
    for (int i=1; i<=n; i++){
        int l = max (i-v[i-1], i);
        int r = min (i+v[i-1], n);
        p[l-1] = r;
    }
    int r = p[0];
    int x = r;
    for (int i=1; i<n; i++){
        x = max (x, p[i]);
        if (i == r) count++;
        r = x;
    }
    return count;
}

int main() {
	int n;
	cin>>n;
	vector<int>v(n);
	for (int i=0; i<n; i++){
	    cin>>v[i];
	}
	cout<<func(v,n);
	return 0;
}