wrong answer
跪求
#include<bits/stdc++.h>
using namespace std;
int n,m,s,q[1000001],dis[10001],used[10001],hd[10001],nxt[500001],zd[500001],val[500001],cnt=0,f,e;
bool inq[10001];
void addedge(int a,int b,int c)
{
cnt++;
zd[cnt]=b,val[cnt]=c,nxt[cnt]=hd[a];
hd[a]=cnt;
}
int main()
{
cin>>n>>m>>s;
for(int i=1;i<=m;i++)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
addedge(a,b,c);
}
memset(dis,-1,sizeof(dis));
dis[s]=0,inq[s]=1,q[1]=s,f=1,e=1;
while(f<=e)
{
int u=q[f++];
for(int p=hd[u];p!=0;p=nxt[p])
{
int v=zd[p];
if(dis[v]==-1||dis[v]>dis[u]+val[p])
{
dis[v]=dis[u]+val[p];
if(inq[v]==0) q[++e]=v,inq[v]=1;
}
}
inq[u]=0;
}
int x=(1<<32)-1;
for(int i=1;i<=n;i++)
if(dis[i]==-1) printf("%d ",x);
else printf("%d ",dis[i]);
}
用数学老师的一句话结束发言:我真差劲