#include<cstdio>
#include<iostream>
#include<vector>
#include<string>
#include<cmath>
using namespace std;
struct node
{
int date;
int next;
}nodes[100001];
int f[100001];
int main()
{
int s,n;
cin>>s>>n;
int a,date,b;
for(int i=0;i<n;i++)
{
cin>>a>>date>>b;
nodes[a].date=date;
nodes[a].next=b;
}
vector <int> res,del;
int h=s;
while(h!=-1)
{
if(f[abs(nodes[h].date)]==0)
res.push_back(h);
else
del.push_back(h);
f[abs(nodes[h].date)]=1;
h=nodes[h].next;
}
//cout<<res.size()<<' '<<del.size()<<endl;
for(int i=0;i<res.size();i++)
{
if(i!=res.size()-1)
{
printf("%05d %d %05d",res[i],nodes[res[i]].date,res[i+1]);
}
else
{
printf("%05d %d -1",res[i],nodes[res[i]].date);
}
cout<<endl;
}
for(int i=0;i<del.size();i++)
{
if(i!=del.size()-1)
{
printf("%05d %d %05d",del[i],nodes[del[i]].date,del[i+1]);
}
else
{
printf("%05d %d -1",del[i],nodes[del[i]].date);
}
cout<<endl;
}
return 0;
}
1097. Deduplication on a Linked List (25)
最新推荐文章于 2018-06-25 20:49:23 发布