#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
int first,n,k;
cin>>first>>n>>k;
int data[100001];
int next[100001];
int temp;
for(int i=0;i<n;i++)
{
cin>>temp;
cin>>data[temp];
cin>>next[temp];
}
int number=0;
int link[100001];
while(first!=-1)//排序
{
link[number]=first;
first=next[first];
number++;
}
n=number;//结点6错误的原因
int round=n/k;//要倒叙几轮
int j=0;
for(int i=0;i<round;i++)
{
reverse(begin(link)+j+0,begin(link)+j+k);//每一轮倒叙
j=j+k;
}
for(int i=0;i<n-1;i++)
{
printf("%05d %d %05d\n", link[i], data[link[i]], link[i + 1]);//不够五位 补0
}
printf("%0*d ",buling,link[n-1]);
cout<<data[link[n-1]]<<" "<<-1;
return 0;
}
大神代码https://www.liuchuo.net/archives/463