Sari la conținut
Zece la Info
Probleme

Numarul minim de robinete pentru udarea unei gradini

Grea 1500 ms 64 MB#greedy#interval

O gradina este reprezentata ca segmentul [0,n] pe o axa. Exista n+1 robinete, robinetul i (0 <= i <= n) fiind situat la pozitia i; daca este deschis, el uda intervalul [i-raza[i], i+raza[i]] (limitat la [0,n]). Determinati, folosind metoda Greedy, numarul minim de robinete ce trebuie deschise pentru a uda intreaga gradina. Daca acest lucru nu este posibil, afisati -1.

Date de intrare
Pe prima linie se citeste n. Pe a doua linie se citesc cele n+1 valori raza[0], raza[1], ..., raza[n].
Date de iesire
Se afiseaza un singur numar: numarul minim de robinete necesare, sau -1 daca gradina nu poate fi udata in intregime.
Restrictii
1 <= n <= 10000, 0 <= raza[i] <= n

Exemple

Exemplul 1

Intrare

5
3 4 1 1 0 0

Iesire

1

Exemplul 2

Intrare

3
0 0 0 0

Iesire

-1

Vrei să rezolvi problema?

Creează-ți un cont gratuit ca să scrii cod în editor, să trimiți soluții la evaluator și să vezi indicațiile.