代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,s;
const int maxn=6e5;
struct node{
int u,v;
long long w;
}e[maxn];
long long dist[maxn];
int main(){
cin>>n>>m>>s;
for(int i=1;i<=m;i++)cin>>e[i].u>>e[i].v>>e[i].w;
for(int i=1;i<=n;i++)dist[i]=(1ll<<31)-1;
dist[s]=0;
for(int i=1;i<n;i++){
for(int j=1;j<=m;j++){
if(dist[e[j].v]>dist[e[j].u]+e[j].w){
dist[e[j].v]=dist[e[j].u]+e[j].w;
}
}
}
for(int i=1;i<=n;i++)cout<<dist[i]<<" ";
return 0;
}