# Sort the Toy Cars (cars)

**URL:** <https://forum.olinfo.it/t/sort-the-toy-cars-cars/9036>\
**Category:** Chiarimenti\
**Created:** [5 Ottobre 2024, 4:25pm UTC](https://forum.olinfo.it/t/sort-the-toy-cars-cars/9036 "2024-10-05T16:25:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![russoangelo](https://forum.olinfo.it/user_avatar/forum.olinfo.it/russoangelo/32/1996_2.png) [@russoangelo](https://forum.olinfo.it/u/russoangelo)\
**Post date:** [5 Ottobre 2024, 4:25pm UTC](https://forum.olinfo.it/t/sort-the-toy-cars-cars/9036/1 "2024-10-05T16:25:53Z")

</div>

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

```auto
#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);
}

```

---

<div class="post-metadata">

**Author:** ![Mazza7](https://forum.olinfo.it/user_avatar/forum.olinfo.it/mazza7/32/2689_2.png) [@Mazza7](https://forum.olinfo.it/u/Mazza7)\
**Post date:** [6 Ottobre 2024, 7:00pm UTC](https://forum.olinfo.it/t/sort-the-toy-cars-cars/9036/2 "2024-10-06T19:00:39Z")

</div>

> [@russoangelo](#):
>
> ```auto
> if(stop == -1){
> cout << 0 << endl;
> }
> 
> ```

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