这个代码错哪了?
#include<bits/stdc++.h>
using namespace std;
long long n,m,i,x,y,z,cf,j,mi,qi,a[1010][1010],f[10010],v[10010];
int main(){
scanf("%lld%lld%lld",&n,&m,&qi);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=1e9;
for(i=1;i<=m;i++){
scanf("%lld%lld%lld",&x,&y,&z);
a[x][y]=z;
}
for(i=1;i<=n;i++) f[i]=1e9;
f[qi]=0;v[qi]=1;
cf=x;
for(i=1;i<=n-1;i++){
for(j=1;j<=n;j++)
if(v[j]==0&&f[j]>f[cf]+a[cf][j]) f[j]=f[cf]+a[cf][j];
mi=1e9;
for(j=1;j<=n;j++)
if(v[j]==0&&f[j]<mi) mi=f[j],cf=j;
v[cf]=1;
}
for(i=1;i<=n;i++) printf("%lld ",f[i]);
}