Problema Testla motors: 5 punti

Ciao a tutti,
ho provato a risolvere questo problema:
https://cms.di.unipi.it/#/task/gator_tesla/statement

Purtroppo non riesco a superare i 5 punti e non riesco a capire il motivo
Il mio algoritmo trova il numero minore nella lista e, a partire dal successivo, tiene conto del carburante rimanente.
Se il valore è negativo parto da capo dal nodo successivo con la stessa destinazione, ossia il minore.
Nel caso in cui il valore sia positivo continuo

Il codice è il seguente

#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
//
  freopen ("input.txt","r",stdin);
  freopen ("output.txt","w",stdout);
    int dim, minusValue, minusIndic = 0;
    cin >> dim;
    int en[dim];

    cin >> minusValue;
    en[0] = minusValue;
    for(int i = 1; i < dim; i++)
    {
        cin >> en[i];
        if(en[i] < minusValue)
        {
            minusValue = en[i];
            minusIndic = i;
        }
    }

    int j = minusIndic + 1;
    if(j >= dim )
        j = 0;

    int start = j;
    int total = en[j];
    
    while(minusIndic != j)
    {
        total -= 10;
        
            if(j+1 >= dim)
                j = -1;
        
        if(total < 0)
        { 
            total = en[j+1];
            start = j+1;
        }
        else
        { 
            total += en[j+1];
        }

        j++;
 
    }

    cout << start + 1;

    return 0;
}

Non sono sicura però potresti provare a sottrarre 10 direttamente quando prendi in input l’array e non all’interno del while. :slight_smile:

Grazie della risposta :slight_smile:
Non penso però che possa modificare il risultato del programma

Dovrebbe essere un problema dei testcase, per’ora il task è “rotto”: GATOR Tesla - 95/100

2 Mi Piace

ah ok grazie,
infatti mi da solo il primo giusto