#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=500010;
int n,m,s,cnt;
int dist[maxn],to[maxn],head[maxn],val[maxn],nxt[maxn];
const int _infinity =1ll<<62;
struct node{
int dis,dian;
bool operator < (const node &x) const {
return x.dis<dis;
}
};
priority_queue < node > q;
bool visit[maxn];
void cun(int u,int v,int w){
to[++cnt]=v;
val[cnt]=w;
nxt[cnt]=head[u];
head[u]=cnt;
}
void dijkstra(){
for(int i=0;i<=n;i++)dist[i]=_infinity;
dist[s]=0;
q.push((node){0,s});
while(!q.empty()){
int u=q.top().dian;
q.pop();
if(visit[u]) continue;
visit[u]=true;
for(int i=head[u];i;i=nxt[i]){
if(dist[to[i]]>dist[u]+val[i]){
dist[to[i]]=dist[u]+val[i];
q.push((node){dist[to[i]],to[i]});
}
}
}
}
signed main(){
scanf("%d%d",&n,&m);
s=1;
for(int i=1;i<=m;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
cun(u,v,w);
}
dijkstra();
for(int i=1;i<=n;i++){
if(dist[i]==_infinity)printf("-1 ");
else printf("%d ",dist[i]);
}
return 0;
}
我看到别的人说设成 2147483647 会挂掉,所以我这个为什么挂了