Pagini recente » Cod sursa (job #720921) | Cod sursa (job #499158) | Cod sursa (job #1319636) | Cod sursa (job #1978075) | Cod sursa (job #3226949)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
const int N=50001,M=250001;
const int INF=2e9;
int dist[N];
bool vc[N];
priority_queue<pair<int,int> >pq;
vector<pair<int,int> > v[N];
int main()
{
int n,m,i,x,y,c,nod,cost,nod2;
fin>>n>>m;
for(i=1;i<=m;i++){
fin>>x>>y>>c;
v[x].push_back({c,y});
}
for(i=1;i<=n;i++)
dist[i]=INF;
dist[1]=0;
pq.push({0,1});
while(!pq.empty())
{
nod=pq.top().second;
pq.pop();
if(!vc[nod]){
vc[nod]=1;
for(auto p: v[nod])
{
cost=p.first;
nod2=p.second;
if(dist[nod2]>dist[nod]+cost)
{
dist[nod2]=dist[nod]+cost;
pq.push({-dist[nod2],nod2});
}
}
}
}
for(i=2;i<=n;i++)
{
if(dist[i]==INF)
fout<<"0 ";
else
fout<<dist[i]<<' ';
}
return 0;
}