Se dă un șir de numere întregi . Fiecare valoare reprezintă mărimea maximă a unui salt ce poate fi efectuat din pozitia . Din poziţia i, se poate ajunge printr-un salt la oricare din poziţiile , , , , dacă este pozitiv, iar dacă este negativ se poate ajunge la oricare din poziţiile , , , . Trebuie să se ajungă, prin salturi, de la poziția la o poziție mai mare decât (în afara vectorului, la dreapta).
Cerinţă
Scrieți un program care să determine numărul minim de salturi necesare pentru a ajunge de la poziția la o poziție mai mare decât .
Date de intrare
Fişierul de intrare salturi.in
conţine pe prima linie numărul natural . Pe linia a doua se află scrise cele numere ale șirului, 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 la o poziție mai mare decât .
Restricții și precizări
- , pentru fiecare .
- Întotdeauna este posibil să se ajungă la o poziţie mai mare decât .
- Concurenţilor care scriu programe C/C++ li se recomandă să citească datele de intrare cu ajutorul funcţiilor din biblioteca C.
Exemplu
salturi.in
5
2 3 -10 1 1
salturi.out
3
Explicație
De la poziția se sare la poziția , apoi la poziția , apoi în afara șirului.