Ho scritto questo codice per risolvere sunnydale , la mia idea è molto semplicemente di seguire il percorso con le regole date dal problema,fermandosi quando si torna in un luogo dove si è già passati o si arriva alla fine, contando i passi fatti.
il compilatore però returna sempre “Process returned -1073740940 (0xC0000374)” e non riesco a capire a cosa sia dovuto l’errore.
#include <bits/stdc++.h>
using namespace std;
int main(){
ifstream cin("input.txt");
ofstream cout("output.txt");
int N,M,s,e,c=0;
cin>>N>>M>>s>>e;
vector<vector<pair<int,int>>> la(N);
bool visto[N];
bool impossibile=false;
for(int i=0;i<M;i++){
int a,b,l;
cin>>a>>b;
la[a].push_back(make_pair(l,b));
la[b].push_back(make_pair(l,b));
}
for(int i=0;i<N;visto[i++]=false);
int node=s;
while(true){
visto[node]=true;
int min_lum=INT_MAX;
int next;
for(int j=0;j<la[node].size();j++){
if(min_lum>la[node][j].first){
min_lum=la[node][j].first;
next=la[node][j].second;
}
}
if(visto[next]){
impossibile=true;
break;
}else{
node=next;
c++;
if(node==e)
break;
}
}
if(impossibile)
cout<<-1;
else
cout<<c;
return 0;
}