#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
struct node{
int data;
int next;
};
node list[100005];
int ftpos,n,m;
vector<int> seq;
void init()
{
int ads;
while(n--)
{
cin>>ads;
cin>>list[ads].data>>list[ads].next;
}
ads=ftpos;
while(ads!=-1)
{
seq.push_back(ads);
ads=list[ads].next;
}
}
void _reverse()
{
int loop=seq.size()/m;
for(int i=0;i<loop;i++)
{
reverse(seq.begin()+i*m,seq.begin()+(i+1)*m);
}
}
void display()
{
for(int i=0;i<seq.size()-1;i++)
{
printf("%05d %d %05d\n",seq[i],list[seq[i]].data,seq[i+1]);
}
printf("%05d %d -1\n",seq[seq.size()-1],list[seq[seq.size()-1]].data);
}
int main()
{
cin>>ftpos>>n>>m;
init();
_reverse();
display();
return 0;
}
pat 乙1025. 反转链表
最新推荐文章于 2024-12-18 01:39:59 发布