Tesla Motors 30/100

#include <iostream>
#include <vector>
#include <algorithm>
#define KM 10
using namespace std;

int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    ios::sync_with_stdio(false);

    int N;
    cin >> N;

    vector<int>s(N);
    for(int i = 0; i != N; ++i) cin >> s[i];

    int copia[N];
    for(int i = 0; i != N; ++i) copia[i] = s[i];

    bool v = false;
    long int sum = 0;
    for(int j = 0; j < N; ++j)
    {
        for(int i = 0; i < N; ++i)
        {
            sum += s[i]- KM;
            v = true;

            if(sum < 0)
            {
                rotate(s.begin(), s.begin() + 1, s.end());
                sum = 0;
                v = false;
                break;
            }
        }

        if(sum == 0 && v == true)
            break;
    }

    long int res = 1;
    for(long int i = 0; i < N; i++)
    {
        if(copia[i] == *s.begin())
        {
            res += i;
            break;
        }
    }

    cout << res;
}

Non riesco a capire perché questo codice da meno di 30 / 100, qualcuno potrebbe darmi una mano?

Ho provato il tuo codice e semplificando va!:
quando si verifica la condizione;

giustamente esci, ma hai anche trovato l’indice della stazione dalla quale si fa il giro completo:
sarebbe j ma siccome le stazione sono indicizzate da 1 a N basterà …
Il ciclo finale quindi non serve.

Volevo solo dire che quando esci basta stampare j+1, il tuo codice con questa semplice modifica ha fatto 100/100.

Grazie mille