Pagini recente » Cod sursa (job #1688158) | Cod sursa (job #2731218) | Cod sursa (job #1924257) | Cod sursa (job #3277138) | Cod sursa (job #3148694)
#include <bits/stdc++.h>
#define loop(i,a,b) for(int i=a;i<=b;i++)
#define loop1(i,a,b) for(int i=a;i<b;i++)
#define ll long long
#define pb push_back
#define ln '\n'
#define INF 1e9
#define cin f
#define cout g
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n, m, x, y, z, d[50001];
vector<pair<int, int>> v[50001];
bool c[50001];
void solve(){
loop(i,2,n)d[i] = INF;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;
q.push({0, 1});
while(!q.empty()){
x = q.top.second;
q.pop();
if(c[x])continue;
c[x] = 1;
for(auto i:v[x]){
y = i.first, z = i.second;
if(d[y] > d[x] + z){
d[y] = d[x] + z;
q.push(d[y], y);
}
}
}
}
int main(){
cin>>n>>m;
loop(i,1,m){
cin>>x>>y>>z;
v[x].pb({y, z});
}
solve();
loop(i,2,n)cout<<d[i]<<' ';
}