Cod sursa(job #3337101)

Utilizator DavidAA007Apostol David DavidAA007 Data 26 ianuarie 2026 22:17:46
Problema Algoritmul lui Dijkstra Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
const int inf = 2e9+7;
int n,m,i,j,x,y,c;
int d[50005];
priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>>q;
vector<pair<int,int>>G[50005];
void bfs(int nod)
{
    d[nod]=0;
    q.push({nod,0});
    while(!q.empty())
    {
        int j=q.top().first;
        int cost=q.top().second;
        q.pop();
        for(auto x:G[j])
        {
            if(d[x.first]>d[j]+x.second)
            {
                d[x.first]=d[j]+x.second;
                q.push({x.first,d[x.first]});
            }
        }
    }
}

int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y>>c;
        G[x].push_back({y,c});
    }
    for(i=1;i<=n;i++)
    {
        d[i]=inf;
    }
    bfs(1);
    for(i=2;i<=n;i++)
    {
        if(d[i]==inf)
            d[i]=0;
        fout<<d[i]<<" ";
    }
    return 0;
}