#include<iostream>#include<algorithm>
using namespace std;intmain(){int first, k, n, temp;
cin >> first >> n >> k;int data[100005], next[100005], list[100005];for(int i =0; i < n; i++){
cin >> temp;
cin >> data[temp]>> next[temp];}int sum =0;//不一定所有的输入的结点都是有用的,加个计数器while(first !=-1){
list[sum++]= first;
first = next[first];}for(int i =0; i <(sum - sum % k); i += k)reverse(begin(list)+ i,begin(list)+ i + k);for(int i =0; i < sum -1; i++)printf("%05d %d %05d\n", list[i], data[list[i]], list[i +1]);printf("%05d %d -1", list[sum -1], data[list[sum -1]]);return0;}
知识点小结
// 区间翻转函数reverse(begin(list)+ i,begin(list)+ i + k);