#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn=100010;
struct node{
int add,next,data;
bool flag;
}_node[maxn];
bool cmp(node a,node b){
return a.data<b.data;
}
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
for(int i=0;i<maxn;i++){
_node[i].flag=false;
}
int n,begin;
cin>>n>>begin;
for(int i=0;i<n;i++){
int _add,_data,_next;
cin>>_add>>_data>>_next;
_node[_add].add=_add;
_node[_add].data=_data;
_node[_add].next=_next;
}
int p=begin;
int count=0;
vector<node> vn;
while(p!=-1){
_node[p].flag=true;
vn.push_back(_node[p]);
count++;
p=_node[p].next;
}
if(count==0){
cout<<0<<' '<<-1<<endl;
return 0;
}
sort(vn.begin(),vn.end(),cmp);
for(int i=0;i<count;i++){
vn[i].next=vn[i+1].add;
//cout<<vn[i].next<<' ';
}
vn[count-1].next=-1;
//cout<<vn[vn.size()-1].add<<endl;
cout<<count<<' ';
printf("%05d\n",vn[0].add);
for(int i=0;i<count-1;i++){
printf("%05d %d %05d\n",vn[i].add,vn[i].data,vn[i].next);
}
printf("%05d %d -1\n",vn[count-1].add,vn[count-1].data);
return 0;
}
pata1052
最新推荐文章于 2022-01-25 15:36:49 发布