Pagini recente » Cod sursa (job #2390525) | Cod sursa (job #2616161) | Cod sursa (job #1654963) | Cod sursa (job #1517224) | Cod sursa (job #3258529)
#include <iostream>
#include <string.h>
#include <string>
#include <bits/stdc++.h>
using namespace std;
#define pb(x) push_back(x)
typedef int ll;
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define XD return cout<<ans[1],void();
#define DX return cout<<ans[0],void();
#define spit(x) return cout<<x<<'\n',void()
typedef pair<ll,ll> pll;
typedef array<ll,2> ll2;
typedef array<ll,4> ll4;
string ans[]={"NO\n","YES\n"};
void solve(){
ll n,i,j,k,l,m,a,b,c;
cin>>n>>m;
priority_queue<ll2,vector<ll2>,greater<ll2>>pq;
vector<vector<ll2>>vec(n+1);
vector<ll>cst(n+1,1e9);
for(i=1;i<=m;i++){
cin>>a>>b>>c;
vec[a].push_back({c,b});
//vec[b].push_back({c,a});
}
pq.push({0,1});
cst[1]=0;
while(!pq.empty()){
auto [dst,nod]=pq.top();
pq.pop();
if(cst[nod] != dst)continue;
for(auto [c,y]:vec[nod]){
if(cst[y] > dst + c){
//cout<<nod<<' '<<dst<<' '<<y<<' '<<c<<endl;
cst[y] = dst + c;
pq.push({cst[y],y});
}
}
}
for(i=2;i<=n;i++)cout<<(cst[i] == 1e9 ? 0ll : cst[i])<<' ';
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
freopen("dijkstra.in","r",stdin);freopen("dijkstra.out","w",stdout);
//ll t;cin>>t;while(t--)
solve();
return 0;
}