Sort the Toy Cars (cars)

Ciao, ho risolto questo problema, ma da 65 / 100, non riesce a risolvere due problemi in subtask 2.

#include <bits/stdc++.h>
using namespace std;

void run_case(int n){
    vector<int> a(n);
    int stop = -1;
    bool canSort=true;

    for(int i=0; i<n; i++){
        cin >> a[i];
    }

    for(int i = 1; i<n; i++){
        if(a[i] < a[i-1]){
            stop = i;
            break;
        }
    }

    if(stop == -1){
        cout << 0 << endl;
    }

    for(int i = stop; i<n-1; i++){
        if(a[i] > a[i+1]){
            canSort = false;
            break;
        }
    }

    if(a[n-1] > a[0]) {
        canSort = false;
    }

    if(canSort){
        cout << n - stop << endl;
    } else {
        cout << -1 << endl;
    }

}

int main() {
    int n;
    cin >> n;
    run_case(n);
}

Qua devi uscire dalla funzione altrimenti poi accedi ad a[-1]. Ti basta aggiungere un return.