Se dă un șir de numere întregi a[0],a[1],..a[N-1]. Fiecare valoare a[i] reprezintă mărimea maximă a unui salt ce poate fi efectuat din pozitia i. Din poziţia i, se poate ajunge printr-un salt la oricare din poziţiile i+1, i+2,…, i+a[i], dacă a[i] este pozitiv, iar dacă a[i] este negativ se poate ajunge la oricare din poziţiile i-1,i-2,…, i+a[i].
Trebuie să se ajungă, prin salturi, de la poziția 0 la o poziție mai mare decât N-1 (în afara vectorului, la dreapta).
Cerința
Scrieți un program care să determine numărul minim de salturi necesare pentru a ajunge de la poziția 0 la o poziție mai mare decât N-1.
Date de intrare
Fișierul de intrare salturi.in conține pe prima linie numărul natural N. Pe linia a doua se află scrise cele N numere ale șirului a[], separate prin spații.
Date de ieșire
Fișierul de ieșire salturi.out va conține un singur număr natural reprezentând numărul minim de salturi necesare pentru a ajunge de la poziția 0 la o poziție mai mare decât N-1.
Restricții și precizări
2 ≤ N ≤ 1.000.000-1000 000 ≤ a[i] ≤ 1.000.000, pentru fiecare0 ≤ i ≤ N-1.- Întotdeauna este posibil să se ajungă la o poziţie mai mare decât
N-1.
Exemplu:
salturi.in
5 2 3 -10 1 1
salturi.out
3
Explicație
De la poziția 0 se sare la poziția 1, apoi la poziția 4, apoi în afara șirului.