Cod sursa(job #3296237)

Utilizator iordacheMatei Iordache iordache Data 12 mai 2025 11:08:50
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <bits/stdc++.h>
#define pb push_back
//#define int long long
using namespace std;
const int N=5e4+5;
vector<pair<int,int>> g[N];
int dist[N];
signed main()
{
    ifstream cin("dijkstra.in");ofstream cout("dijkstra.out");
    int n,m;
    cin>>n>>m;
    for(int _=1;_<=m;++_)
    {
        int u,v,w;cin>>u>>v>>w;
        g[u].pb({v,w});
    }
    priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> pq;
    pq.push({0,1});
    for(int i=1;i<=n;++i) dist[i]=1e9;
    dist[1]=0;
    while(!pq.empty())
    {
        int u=pq.top().second,w=pq.top().first;
        pq.pop();
        if(w!=dist[u]) continue;
        for(auto v:g[u])
        {
            if(w+v.second>=dist[v.first]) continue;
            dist[v.first]=w+v.second;
            pq.push({dist[v.first],v.first});
        }
    }
    for(int i=2;i<=n;++i) {if(dist[i]==1e9) dist[i]=0;cout<<dist[i]<<" ";}
}