Pagini recente » Cod sursa (job #1623340) | Cod sursa (job #1497444) | Cod sursa (job #1500964) | Cod sursa (job #838540) | Cod sursa (job #2682938)
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int> > v[50003];
priority_queue <pair<int,int> > q;
int parc[50003],dist[50003];
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+5;
dist[1]=0;
q.push({0,1});
while(q.size()>0){
nod=q.top().second;
q.pop();
if(parc[nod]==0){
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+5)
dist[i]=0;
cout<<dist[i]<<" ";
}
return 0;
}