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;
}