#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
using namespace std;
const int maxn = 100011;
struct node
{
int add;
int key;
int next;
}link[maxn];
int main()
{
freopen("1.txt","r",stdin);
map<int,int>mp;
int n,start;
cin>>start>>n;
for(int i = 0;i<n;i++)
{
int ad;
cin>>ad;
link[ad].add = ad;
cin>>link[ad].key>>link[ad].next;
}
int ad = start;
int l[maxn] = {0},rl[maxn] = {0},ind1=0,ind2 = 0;
while(1)
{
int k = abs(link[ad].key);
mp[k] ++;
if(mp[k] > 1)
{
rl[ind2++] = ad;
}
else
l[ind1++] = ad;
ad = link[ad].next;
if(ad == -1)
break;
}
for(int i = 0;i<ind1;i++)
{
int temp = l[i];
if(i!=ind1 - 1)
{
printf("%05d %d %05d\n",link[temp].add,link[temp].key,l[i+1]);
}
else
{
printf("%05d %d -1\n",link[temp].add,link[temp].key);
}
}
for(int i = 0;i<ind2;i++)
{
int temp = rl[i];
if(i!=ind2 - 1)
{
printf("%05d %d %05d\n",link[temp].add,link[temp].key,rl[i+1]);
}
else
{
printf("%05d %d -1",link[temp].add,link[temp].key);
}
}
return 0;
}
1097 Deduplication on a Linked List (25分)
最新推荐文章于 2021-08-09 11:43:28 发布