#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
int n,m,s,u,l;
int vis[888888],h[888888],dis[888888];
queue<int> q;
struct edge{
int t,w,nex;
}c[888888];
void cunchu(int a,int b,int v){
c[++l].t=b;
c[l].w=v;
c[l].nex=h[a];
h[a]=l;
}
void sipafa(){
for(int i=1; i<=n; i++) {
dis[i]=inf;
vis[i]=0;
}
q.push(s);
dis[s]=0;
vis[s]=1;
while(!q.empty()){
u=q.front();
q.pop();
vis[u]=0;
for(int i=h[u]; i; i=c[i].nex){
int v=c[i].t;
if(dis[v]>dis[u]+c[i].w){
dis[v]=dis[u]+c[i].w;
if(vis[v]==0){
q.push(v);
}
}
}
}
}
int main(){
cin>>n>>m>>s;
for(int i=0;i<m;i++){
int u,v,w;
cin>>u>>v>>w;
cunchu(u,v,w);
}
sipafa();
for(int i=1; i<=n; i++){
if(s==i){
cout<<0<<" ";
}else{
cout<<dis[i]<<" ";
}
}
return 0;
}
麻烦各位大佬帮忙找一下问题,我实在找不出(ToT).