Cod sursa(job #3345090)

Utilizator bogdannn_Goian Bogdan bogdannn_ Data 7 martie 2026 21:46:46
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=1; i<=m; i++){
        int u, v, w; cin>>u>>v>>w;
        g[u].push_back({v, w});
        g[v].push_back({u, w});
    }

    int start=1;
    set<pair<int, int>> st;
    dist[start]=0;
    st.insert({0, start});
    while(!st.empty()){
        auto it=st.begin(); st.erase(it);
        int d=it->first, u=it->second;
        for(auto edge:g[u]){
            int v=edge.first, w=edge.second;
            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]<<" ";
    }
    return 0;
}