#include<bits/stdc++.h>
using namespace std;
int n,m,s,e[1001][1001],d[10001];
bool vis[10001];
int main()
{
cin>>n>>m>>s;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i==j) continue;
else e[i][j]=99999999;
}
}
for(int i=1;i<=m;i++)
{
int x,y,z;
cin>>x>>y>>z;
e[x][y]=z;
}
for(int i=1;i<=n;i++) d[i]=e[s][i];
vis[s]=1;
for(int i=1;i<n;i++)
{
int minn=99999999,k=-1;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&d[j]<minn)
{
minn=d[j];
k=j;
}
}
if(k==-1)
{
d[k]=pow(2,31)-1;
continue;
}
vis[k]=1;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&d[j]>d[k]+e[k][j]&&e[k][j]!=99999999)
{
d[j]=d[k]+e[k][j];
}
}
}
for(int i=1;i<=n;i++) cout<<d[i]<<" ";
return 0;
}
求调,谢谢了