No valid executable file was produced by the compiler /usr/bin/ld: 最后的链结失败: 错误的地址 collect2: 错误:ld 返回 1 谁能帮个忙告诉我这是什么错误,我自己在电脑上可以运行
#include<cstdio>
#define li(i,j,k) for(int i=j ; i<=k ; i++)
#define si(i,j,k) for(int i=j ; i>=k ; i--)
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
x=(x<<3)+(x<<1)+ch-'0';
ch=getchar();
}
return x*f;
}
int min(int a,int b){
return a<b?a:b;
}
int n=read(),m=read(),s=read();
int dis[10001][10001]={0x7fffffff};
int way[100001];
int dijkstra(){
bool used[100001]={false};
while(1){
int v=-1;
li(i,1,n){
if(!used[i] && (v==-1 || way[i]<way[v])){
v=i;
break;
}
}
if(v==-1)break;
used[v]=true;
printf("%d %d\n",used[v],v);
li(i,1,n){
way[i]=min(way[i],way[v]+dis[v][i]);
}
}
return 0;
}
int main(){
li(i,1,m){
int a=read(),b=read(),c=read();
if(a==s)way[b]=c;
dis[a][b]=c;
}
dijkstra();
way[s]=0;
li(i,1,n){
printf("%d",way[i]);
if(i==n)printf("\n");
else printf(" ");
}
return 0;
}