Electrical power

Questo programma mi da 0/100 qualcuna ha idea de perchè, a me sembra giusto ma non mi viene.

#include <iostream>

using namespace std;

int main(){

long long N=0;
long long h=0;
long long days = 0;

cin>>N;

int v[N];
for(int i=0; i<N; i++){
    cin>>v[i];

}

h=v[N-1];
for(int i = N-1; i>0; i--){
    if(v[i-1]>v[i]){
        continue;
    }
    if(v[i]>v[i-1]){
        if(days<v[i]-v[i-1]){
            days=v[i]-v[i-1];
        }
        v[i-1]=v[i];
    }
}
cout<<days;

}

Ecco un errore che ho trovato, prendiamo il primo caso di esempio
5
4 1 2 3 1
La risposta è 2 perchè il primo giorno le altezze diventano
4 2 3 3 1
ed il secondo
4 3 3 3 1

Ora però se facciamo una piccola modifica cioè prendere come input
5
4 1 2 9 1
La risposta dovrebbe essere 3 perchè le altezze sono al giorno:
-1: 4 2 9 9 1
-2: 4 9 9 9 1
-3: 9 9 9 9 1
Ma il tuo programma resituisce 8.

P.s Se implementi quel che ho fatto(cioè far fare ogni giorno le modifiche possibili) va out di tempo, esiste un modo migliore, ti consiglierei di vedere altre richieste di aiuto su questo problema già presenti sul forum

Andando all’indietro è quasi immediato vedere che fa 3.(si apportano tre modifiche di fila e …)