#include<stdio.h>
#include<algorithm>
using namespace std;
struct pnode{
int address;
int data;
int next;
bool flag;
}node[100010];
bool cmp(pnode a,pnode b){
if(!a.flag || !b.flag)return a.flag>b.flag;
else return a.data<b.data;
}
int main(){
int i, head, n, p, tp1, c, tp2, count=0;
for(i=0;i<100010;i++)node[i].flag=false;
scanf("%d%d",&n,&head);
for(i=0;i<n;i++){
scanf("%d%d%d",&tp1,&c,&tp2);
node[tp1].address=tp1; node[tp1].data=c;node[tp1].next=tp2;
}
p=head;
while(p!=-1){
count++;
node[p].flag=true;
p=node[p].next;
}
if(!count)printf("0 -1\n");
else{
printf("%d ",count);
sort(node,node+100010,cmp);
for(i=0;i<count;i++){
printf("%05d\n",node[i].address);
printf("%05d %d ",node[i].address, node[i].data);
}
printf("-1\n");
}
return 0;
}
PAT-A1052
最新推荐文章于 2021-10-02 00:46:41 发布