#include<iostream>
#include<cstdio>
#include<math.h>
using namespace std;
struct node{
int key;
int next;
};
int main(){
int n;
node number[100000];
int cunzai[10001];
int start;
cin>>start>>n;
int po,k,ne;
for(int i=0;i<n;i++){
scanf("%d%d%d",&po,&k,&ne);
number[po].key=k;
number[po].next=ne;
}
int now=start;
int begin_of_del=-1;
int last=-1;
int del_last=-1;
while(now!=-1){
if(cunzai[abs(number[now].key)]==0){
cunzai[abs(number[now].key)]=1;
last=now;
now=number[now].next;
}
else{
// cout<<"sdsdf<<endl";
int d=number[now].next;
number[last].next=d;
if(begin_of_del==-1){
begin_of_del=now;
del_last=now;
}
else {
number[del_last].next=now;
number[now].next=-1;
del_last=now;
}
now=d;
}
}
now=start;
while(now!=-1){
if(number[now].next!=-1)
printf("%05d %d %05d\n",now,number[now].key,number[now].next);
else printf("%05d %d %d\n",now,number[now].key,number[now].next);
now=number[now].next;
}
now=begin_of_del;
while(now!=-1){
if(number[now].next!=-1)
printf("%05d %d %05d\n",now,number[now].key,number[now].next);
else printf("%05d %d %d",now,number[now].key,number[now].next);
now=number[now].next;
}
}
PAT甲级1097 Deduplication on a Linked List
最新推荐文章于 2022-09-13 23:30:00 发布