#include<iostream>
#include<map>
#include<vector>
#include<cstdio>
int main(void){
using namespace std;
map<int,int> m1;
map<int,int> m2;
int first_add;
int n;
int i;
cin>>first_add>>n>>i;
int nn=n;
while(nn){
int address;
int num;
int next_add;
cin>>address>>num>>next_add;
m1[address]=num;
m2[address]=next_add;
--nn;
}
vector<int> sort;
sort.push_back(first_add);
int temp=first_add;
while(m2[temp]!=-1){
sort.push_back(m2[temp]);
temp=m2[temp];
}
int m=0;
vector<int> sort_after;
if(i){
for(;m<=((int)sort.size())-i;m+=i){
int ii=i-1;
for(;ii>=0;--ii)
sort_after.push_back(sort[m+ii]);
}
for(;m<sort.size();++m)
sort_after.push_back(sort[m]);
for(m=0;m<sort_after.size();++m){
printf("%05d %d ",sort_after[m],m1[sort_after[m]]);
//cout<<sort_after[m]<<' '<<m1[sort_after[m]]<<' ';
if((m+1)!=sort_after.size())
printf("%05d\n",sort_after[m+1]);
//cout<<sort_after[m+1]<<endl;
else
cout<<"-1";
}}
else{
for(m=0;m<sort.size();++m){
printf("%05d %d ",sort[m],m1[sort[m]]);
//cout<<sort[m]<<' '<<m1[sort[m]]<<' ';
if((m+1)!=sort.size())
printf("%05d\n",sort[m+1]);
//cout<<sort[m+1]<<endl;
else
cout<<"-1";
}
}
return 0;
}
1025. 反转链表 (25)
最新推荐文章于 2018-03-08 10:04:19 发布