WA一个点,求大佬看看,AC必关
#include <bits/stdc++.h>
using namespace std;
struct edge
{
int to;
int w;
};
vector <edge> e[10010];
long long d[10010];
int main()
{
int n,m,s;
cin >>n>>m>>s;
for(int i = 1;i <= m;i++)
{
int u,v,w;
cin >>u>>v>>w;
e[u].push_back({v,w});
}
for(int i = 1;i <= n;i++)
{
d[i]=1<<31-1;
}
d[s]=0;
bool flag;
do{
flag=false;
for(int i = 1;i <= n;i++)
{
for(int j = 0;j < e[i].size();j++)
{
if(d[i]+e[i][j].w<d[e[i][j].to])
{
d[e[i][j].to]=d[i]+e[i][j].w;
flag=true;
}
}
}
}while(flag);
for(int i = 1;i <= n;i++)
{
cout <<d[i]<<" ";
}
return 0;
}