Vortex Improved Motors (vim)

Ciao a tutti, sto provando a risolvere il problema Vortex Improved Motors, ma il codice che ho scritto va fuori tempo, potete darmi qualche hint per arrivare a un approccio risolutivo più veloce?
Questo è il mio codice:

void valuta(int N, int C[], int L[], int P[])
{
    vector <int> valore(N);
    for (int i = 0; i < N; i++)
    {
        valore[i] = C[i] - L[i];
    }
    for (int i = 0; i < N; i++)
    {
        P[i] = 1;
        int restante = 0;
        int j = i;
        while( j < N+i)
        {
            if (valore[j%N] + restante >= 0)
            {
                restante += valore[j % N];
            }
            else
            {
                j = N + i;
                P[i] = 0;
            }
            j++;
        }
    }
}

Ciao, la tua soluzione ha una complessità di \mathcal{O}(N^2), per risolvere il problema devi trovare una soluzione \mathcal{O}(N) oppure \mathcal{O}(N\log N).

Innanzitutto sei in grado di trovare velocemente un singolo punto di rifornimento da cui puoi partire? Se non l’hai già risolto ti consiglio di provare prima a risolvere gator_tesla.

1 Mi Piace

Ok grazie, una volta risolto tesla motors mi è bastato buttare fuori tutte le soluzioni invece di una sola e ho risolto anche Vortex.