l2-022

#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
using namespace std;


struct node{
int key,next;
};


node a[100000];
int ans1[100000],ans2[100000];


int main(){
int s,n,aa;
cin>>s>>n;
for(int i = 0;i<n;++i){
cin>>aa;
cin>>a[aa].key>>a[aa].next;
}
int cnt = 0;
while(s != -1){
ans1[cnt++] = s;
s = a[s].next;
}
int cnt2 = 0,r = 0,l = cnt-1;
while(r <= l){
if(r == l) ans2[cnt2++] = ans1[l--];
else{
ans2[cnt2++] = ans1[l--];
ans2[cnt2++] = ans1[r++];
}
}
for(int i = 0;i<cnt2-1;++i) printf("%05d %d %05d\n",ans2[i],a[ans2[i]].key,ans2[i+1]);
printf("%05d %d %d\n",ans2[cnt2-1],a[ans2[cnt2-1]].key,-1);
return 0;
}

猜你喜欢

转载自blog.csdn.net/dukig/article/details/79666078