题目

题意:每个k个链表元素反转,不足k个不反转,输出全部反转后的结果

#include<iostream>
#include<algorithm>
using namespace std;
int main() {
	int st,n,m;
	cin>>st>>n>>m;
	int data[100000],next[100000],list[100000];
	for(int i=0; i<n; ++i) {
		int temp;
		cin>>temp;
		cin>>data[temp]>>next[temp];
	}
	int count=0;//坑。不是所有的数据都有效
	while(st!=-1) {
		list[count++]=st;
		st=next[st];
	}
	for(int i=0; i<count-count%m; i+=m)
		reverse(list+i,list+i+m);
	for(int i=0; i<count-1; ++i)
		printf("%05d %d %05d\n",list[i],data[list[i]],list[i+1]);
	printf("%05d %d -1",list[count-1],data[list[count-1]]);
	return 0;
}