ciao ragazzi, ho bisogno di una mano sul problema  overtakings. Il codice che ho scritto dà 62 punti, letteralmente non funziona il primo test case mentre gli altri sono corretti.
Ecco il codice:
#include <bits/stdc++.h>
using namespace std;
int main() {
    // uncomment the following lines if you want to read/write from files
    // ifstream cin("input.txt");
    // ofstream cout("output.txt");
    int N, Q;
    cin >> N >> Q;
    vector<int> C(N);
    for (int i = 0; i < N; i++) {
        cin >> C[i];
    }
  
     
    map<int,int> map;				//mappa dove la keyword è n macchina e value è la posizione
    for (int i = 0; i < N; i++) {
        map.insert({C[i],i});
    }
	
	//set<int> s;
	vector<int> nSorp(N);			//vettore indice n macchina e valore è n sorpassi
    for (int i = 0; i < N; i++) {
        nSorp[i]=0;
    }
	
	int maxSorp;
	int maxMacc;
	int app;
	int nSorpassi;
	
    for (int i = 0; i < Q; i++) {
        int x;
        cin >> x;
        
        nSorp[C[map[x]-1]]++;
        
        
        app=C[map[x]];
        C[map[x]]=C[map[x]-1];
        C[map[x]-1]=app;
        
        map[x]--;
        map[C[map[x]+1]]++;
        
        /*for (int z = 0; z < N; z++) {
        	cout << C[z] << " ";
    	}*/
    	nSorpassi=nSorp[C[map[x]+1]];
    	if(i==0){
    	    maxSorp=1;
    	    maxMacc=C[map[x]+1];
    	    cout<<maxMacc<< endl;;
    	} else if(maxSorp>nSorpassi){
    	    cout<<maxMacc<< endl;
    	} else if(maxSorp==nSorpassi){
    	    maxMacc=min(maxMacc,C[map[x]+1]);
    	    cout<<maxMacc<< endl;
    	} else {
    	    maxSorp=nSorpassi;
    	    maxMacc=C[map[x]+1];
    	    cout<<maxMacc<< endl;
    	}
        
        
		
        //cout << distance(nSorp.begin(), max_element(nSorp.begin(), nSorp.end())) << endl;
    }
    return 0;
}
ci ho passato parecchio tempo ma non trovo l’errore. Grazie in anticipo.