Cod sursa(job #3345101)

Utilizator bogdannn_Goian Bogdan bogdannn_ Data 7 martie 2026 21:55:26
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include<bits/stdc++.h>
using namespace std;
#define ll long long
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});
        }
    }

    priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> pq;

    dist[1]=0;
    pq.push({0, 1});
    while(!pq.empty()){
        auto [d, u]=pq.top();
        pq.pop();
        if(d>dist[u]) continue;
        for(auto [v, w]:g[u]){
            if(dist[v]>d+w){
                dist[v]=d+w;
                pq.push({dist[v], v});
            }
        }
    }
    for(int i=2; i<=n; i++){
        if(dist[i]==inf) cout<<"INF ";
        else cout<<dist[i]<<" ";
    }
    return 0;
}