调了好久实在看不出来哪里错了T_T
求大佬帮忙看看
#include<bits/stdc++.h>
#define ll long long
#define mm memset
#define EPS 1e-8
#define INF 0x7fffffff
const int N = 5e5+10;
using namespace std;
int n,m,k;
bool vis[N];
int d[N];
struct node{
int e,w;
};
vector<node>v[N];
void Dijkstra(int s){
for(int i=0;i<=n;i++){
d[i]=INT_MAX;
}
d[s]=0;
for(int i=1;i<n;i++){
int u=0;
for(int j=1;j<=n;j++){
if(!vis[j]&&d[j]<d[u]) u=j;
vis[u]=true;
for(auto ed : v[u] ){
int q=ed.e;
int r=ed.w;
if(d[q]>d[u]+r){
d[q]=d[u]+r;
}
}
}
}
}
int main(){
cin>>n>>m>>k;
for(int i=0;i<m;i++){
int x,y,z;
cin>>x>>y>>z;
v[x].push_back({y,z});
}
Dijkstra(k);
for(int i=1;i<=n;i++){
cout<<d[i]<<' ';
}
}