#include<iostream>
#include<cstdio>
using namespace std;
int e[1005][1005];
int n,m,s;
int t1,t2,t3;
int book[1005];
int dis[1005];
const int wu=1e9+7;
int u;
int main(){
cin>>n>>m>>s;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i==j) e[i][j]=0;
else e[i][j]=wu;
for(int i=1;i<=m;i++){
cin>>t1>>t2>>t3;
e[t1][t2]=t3;
}
for(int i=1;i<=n;i++){
dis[i]=e[s][i];
if(e[s][i]==0)
dis[i]=wu;
}
for(int i=1;i<=n;i++)
book[i]=0;
book[s]=1;
for(int i=1;i<=n-1;i++){
int minn=wu;
for(int j=1;j<=n;j++){
if(book[j]==0 && dis[j]<minn){
minn=dis[j];
u=j;
}
}
book[u]=1;
for(int v=1;v<=n;v++){
if(e[u][v]<wu)
if(dis[u]+e[u][v]<dis[v])
dis[v]=dis[u]+e[u][v];
}
}
for(int i=1;i<=n;i++)
cout<<dis[i]<<" ";
return 0;
}
/*
5 15 5
2 5 181
1 5 98
4 2 49
3 2 262
4 3 26
2 4 192
5 1 221
2 2 254
4 4 233
1 5 44
5 4 67
4 2 214
1 1 47
1 1 118
5 4 3
*/
找了很长时间的错误但还是不对,有没有大佬给我看看啊?