Dando una rapida occhiata il problema potrebbe essere dato da
Infatti se il carburante non basta per arrivare ad i+1 allora mi fermo a i non a i-1
Piccolo consiglio, quando devi dichiarare deglia array/matrici è “buona norma” utilizzare una costante come dimensione , ti consiglio di fare:
using namespace std;
int const MAXN=100000;
int main ()
{
int D[MAXN] ;
}
E poi utilizzare solo le celle necessarie in quel task.
Sottoponendo il tuo codice modificato dal cellulare ottengo ancora 0/100, al momento non riesco a provare nuovamente il tuo codice , quello che ti consiglio è : se ti imbatti in un errore cerca di debuggare in locale (magari stampando a video le varie variabili) in locale e trovare l’errore, metodologia che risulta necessaria, molto spesso in gara
Ok trovato l’errore, hai sbagliato ad inserire le parentesi graffe, sostituisci il ciclo for con questo codice:
for (int i=0; i<N-1; i++)
if (D[i+1]>inizio+M && D [i] <=inizio+M){
inizio=D[i];
fermate++;
}
if (inizio+M<K) fermate++;
return fermate;