#include<stdio.h>
int main(){
int data[100000];
int next[100000];
int fore[100000];
int P,N,K;
scanf("%d%d%d",&P,&N,&K);
int addr;
for(int i=0;i<N;i++){
scanf("%d",&addr);
scanf("%d%d",data+addr,next+addr);
}
int start=P,flag=1,last=-1;
int cnt=0,tmp=P;
while(P!=-1){
if(next[P]!=-1){
fore[next[P]]=P;
}
cnt++;
if(cnt==K){
cnt=0;
if(flag) start=P,flag=0;
if(last!=-1) next[last]=P;
tmp=next[P];
for(int i=1;i<K;i++){
next[P]=fore[P];
P=next[P];
}
last=P;
next[P]=tmp;
}
P=next[P];
}
while(start!=-1){
printf("%05d %d ",start,data[start]);
if(next[start]!=-1) printf("%05d\n",next[start]);
else printf("-1");
start=next[start];
}
return 0;
}
PAT(Basic Level)_1025_反转链表
最新推荐文章于 2023-11-19 16:15:31 发布