Pagini recente » Cod sursa (job #2007882) | Cod sursa (job #2017006) | Cod sursa (job #2824853) | Cod sursa (job #492806) | Cod sursa (job #2682942)
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int> > v[50001];
priority_queue <pair<int,int> > q;
int parc[50001],dist[50001];
int main()
{
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
int n,m,i,x,y,cost,nod,nod1;
cin>>n>>m;
for(i=1;i<=m;++i){
cin>>x>>y>>cost;
v[x].push_back({y,cost});
}
for(i=1;i<=n;++i)
dist[i]=1e9+2;
dist[1]=0;
q.push({0,1});
while(q.size()>0){
nod=q.top().second;
q.pop();
if(parc[nod]!=1){
parc[nod]=1;
for(i=0;i<v[nod].size();++i){
nod1=v[nod][i].first;
cost=v[nod][i].second;
if(dist[nod1]>dist[nod]+cost){
dist[nod1]=dist[nod]+cost;
q.push({-dist[nod1],nod1});
}
}
}
}
for(i=2;i<=n;++i)
if(dist[i]==1e9+2)
cout<<0<<" ";
else
cout<<dist[i]<<" ";
return 0;
}