Cod sursa(job #3345092)

Utilizator bogdannn_Goian Bogdan bogdannn_ Data 7 martie 2026 21:49:11
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include<bits/stdc++.h>
using namespace std;

const int INF = 1e9;

int main(){

    int n,m;
    cin>>n>>m;

    vector<vector<pair<int,int>>> g(n+1);
    vector<int> dist(n+1,INF);

    for(int i=0;i<m;i++){
        int u,v,w;
        cin>>u>>v>>w;

        if(u<=n && v<=n){
            g[u].push_back({v,w});
            g[v].push_back({u,w});
        }
    }

    set<pair<int,int>> st;

    dist[1]=0;
    st.insert({0,1});

    while(!st.empty()){

        auto [d,u]=*st.begin();
        st.erase(st.begin());

        if(d>dist[u]) continue;

        for(auto [v,w]:g[u]){

            if(dist[v]>d+w){

                st.erase({dist[v],v});

                dist[v]=d+w;

                st.insert({dist[v],v});
            }
        }
    }

    for(int i=2;i<=n;i++){
        if(dist[i]==INF) cout<<"INF ";
        else cout<<dist[i]<<" ";
    }
}