#include<stdio.h>
typedef struct {
int address;
int data;
int next;
} li;
int main(){
int firstad,longth,k;
scanf("%d%d",&firstad,&longth);
int n[100000];
li list[longth],m;
for(int i=0;i<longth;i++){
scanf("%d%d%d",&list[i].address,&list[i].data,&list[i].next);
}
int key=0,longth1=0;
for(int i=0;i<longth;i++){
key=0;
for(int j=i;j<longth;j++){
if(list[j].address==firstad){
key++;
m=list[j];
list[j]=list[i];
list[i]=m;
firstad = list[i].next;
if(firstad==-1){longth=i+1;}
break;
}
} if(key==0){
longth=i;
break;}
}
// printf("%d----\n",longth1);
for(int i=0;i<longth;i++){
int key=0;
for(int j=i;j<longth;j++){
k=list[j].data;
if(list[j].data<0)k=0-list[j].data;
if(n[k]!=1){
n[k]=1;
m=list[i];
list[i]=list[j];
list[j]=m;
key++;
//printf("*%d-%d",i,j);
break;
}
// printf("%d--%d ",list[k*i+j].data,list[k*i+k-j-1].data);
}
if(key==0){
longth1=i;
break;}
}
for(int i=0;i<longth1;i++){
if(i<longth1-1)
printf("%05d %d %05d\n",list[i].address,list[i].data,list[i+1].address);
else
printf("%05d %d -1\n",list[i].address,list[i].data);
}
for(int i=longth1;i<longth;i++){
if(i<longth-1)
printf("%05d %d %05d\n",list[i].address,list[i].data,list[i+1].address);
else
printf("%05d %d -1\n",list[i].address,list[i].data);
}
// printf("*%d-%d",k,longth);
return 0;
}
什么原因?