Pagini recente » Cod sursa (job #385948) | Cod sursa (job #70931) | Cod sursa (job #1934769) | Cod sursa (job #2918876) | Cod sursa (job #2475544)
#include<bits/stdc++.h>
#define pii pair<int,int>
#define x first
#define y second
#define N 50100
#define inf 1e9
using namespace std;
queue<pii> Q;
int n,m,d[N];
vector<pii>V[N];
int main() {
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
cin>>n>>m;
for (int i=1; i<=m; i++) {
int x,y,c; cin>>x>>y>>c;
V[x].push_back({y,c});
}
for (int i=2; i<=n; i++) d[i]=inf;
for (auto it: V[1]) {
Q.push({it.y, it.x});
d[it.x] = it.y;
}
while (Q.size()) {
int x=Q.front().y;
int c=Q.front().x;
Q.pop();
if (d[x]<c) continue;
for (auto it: V[x]) {
int y=it.x;
int c2=it.y;
if (d[y]>d[x]+c2) {
d[y]=d[x]+c2;
Q.push({d[y], y});
}
}
}
for (int i=2; i<=n; i++) {
cout<<((d[i]==inf)?0:d[i])<<" ";
}
return 0;
}