Sunnydale Process returned -1073740940 (0xC0000374)

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;
}

Ciao! Questo problema è 1-based (cioè i numeri dei nodi non vanno da 0 a N - 1, ma da 1 a N. Pertanto la lista di adiacenza dichiarata qui è troppo piccola.

vector<vector<pair<int,int>>> la(N);

Tra l’altro noto che nelle seguenti righe ci sono almeno due bug importanti:

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));
}