#include<bits/stdc++.h>
using namespace std;
struct edge
{
int to;
int w;
};
int dis[10001];
typedef pair<int,int> P;
vector<edge> g[10001];
int n,m,s;
void dijkstra(int s)
{
priority_queue<P, vector<P> , greater<P> > q;
memset(dis,0x3f,sizeof(dis));
dis[s]=0;
q.push(P(0,s));
while(!q.empty())
{
P p=q.top();
q.pop();
int idx=p.second;
if(dis[idx]<p.first)continue;
dis[idx]=p.first;
for(int i=0;i<g[idx].size();++i)
{
edge e=g[idx][i];
if(dis[e.to]>dis[idx]+e.w)
{
dis[e.to]=dis[idx]+e.w;
q.push(P(dis[e.to],e.to));
}
}
}
}
int main()
{
cin>>n>>m>>s;
for(int i=1;i<=m;++i)
{
int u,v,w;
cin>>u>>v>>w;
g[u].push_back({v,w});
}
dijkstra(s);
for(int i=1;i<=n;++i)
{
if(dis[i]==0x3f3f3f3f)cout<<2147483647<<" ";
else cout<<dis[i]<<" ";
}
}
为啥弱化的过了这个没过