Pagini recente » Cod sursa (job #1877562) | Cod sursa (job #1914004) | Cod sursa (job #164722) | Cod sursa (job #1355905) | Cod sursa (job #2346000)
#include<bits/stdc++.h>
#define pii pair<int,int>
#define fi first
#define se second
#define N 50010
using namespace std;
const int inf=1e9;
int d[N];
vector<pii>V[N];
int n,m,t,s;
priority_queue<pii,vector<pii>,greater<pii>>Q;
int main() {
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
t=1;
while (t--) {
cin>>n>>m;
for (int i=1; i<=m; ++i) {
int x,y,c; cin>>x>>y>>c;
V[x].push_back({y,c});
}s=1;
for (int i=1; i<=n; ++i) d[i]=inf;
d[s]=0;
for (auto it:V[s]) {
Q.push({it.se, it.fi});
d[it.fi]=it.se;
}
while (Q.size()) {
int s=Q.top().fi;
int x=Q.top().se; Q.pop();
for (auto it: V[x]) {
int c=it.se;
int y=it.fi;
if (s+c<d[y]) {
d[y]=s+c;
Q.push({s+c,y});
}
}
}
for (int i=1; i<=n; ++i) {
if (i==s) continue;
if (d[i]==inf) cout<<"0 ";
else cout<<d[i]<<" ";
} cout<<"\n";
}
return 0;
}