Cod sursa(job #3325318)

Utilizator anca04Bizon Anca anca04 Data 25 noiembrie 2025 12:22:52
Problema Algoritmul lui Dijkstra Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>
#include <queue>
#define INF 99999999
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int i,n,m,nc,p,x,y,c,cost,vecin,d[250001];

vector<pair<int, int>> b[250001];
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;
int main()
{
    f>>n>>m;
    for(i=1;i<=m;++i)
    {
        f >> x >> y >> c;
        b[x].push_back({y, c});
    }
    for(i=1;i<=n;++i)
        d[i]=INF;
    d[1]=0;
    q.push({0,1});
    while(!q.empty())
    {
        nc=q.top().second;
        q.pop();
        for(auto &muchie : b[nc])
        {
            int vecin = muchie.first;
            int cost_muchie = muchie.second;

            if(d[vecin] > d[nc] + cost_muchie)
            {
                d[vecin] = d[nc] + cost_muchie;
                q.push({d[vecin], vecin});
            }
        }
    }
    for(i=2;i<=n;++i)
        if(d[i]==INF)
        g<<"0"<<' ';
    else
        g<<d[i]<<' ';
    return 0;
}