Police Execution killed

Il codice passa tutti i testcase tranne il 6,7,18 e 19 per Execution killed (could be triggered by violating memory limits). Non capisco proprio dove sia l’errore, aiuto plz :sob:

#include <iostream>
#include <string>
#include <vector>
#define pb push_back
using namespace std;

vector<int> split(string t){
	vector<int> v;
	string temp="";
	for(int i=0; i<t.size(); i++){
		if(t[i]==' '){
			v.pb(stoi(temp));
			temp = "";
		}
		else temp += t[i];
	}
	v.pb(stoi(temp));
	return v;
}

int main(){

	int N,K;
	cin >> N >> K;
	cin.ignore();
	string t;
	getline(cin, t);
	vector<int> V = split(t);
	int tent = 0;
	int j=0;
	while(true){
		if(tent > N){
			cout << -1;
			break;
		}
		if(j+1==K){
			cout << tent;
			break;
		}
		else{
			tent++;
			j=V[j]-1;
		}
	}
	
	return 0;
}

Il problema sembrerebbe essere nel modo in cui leggi l’input. Leggendo l’input in questo modo

	int N, K;
	cin >> N >> K;
	vector<int> V(N);
	for (int i = 0; i < N; i++) {
	    cin >> V[i];
	}

e lasciando il resto del codice invariato ottieni 100/100. C’è un motivo per il quale hai usato la funzione split?

Pensavo che non leggesse così :sweat_smile:. I numeri sono dati in input sulla stessa riga, quindi non viene dato INVIO ad ogni numero, per questo non lo so pensavo che cin così non funzionasse.
Comunque grazie :slight_smile: