l2002
GETexas
·
·
个人记录
#include<bits/stdc++.h>
using namespace std;
const int N =1e5+5;
struct node{
int ind,val,nxt;
}e[N];
vector<node> v1,v2;
unordered_map<int,int> mp;
unordered_map<int,int> mp2;
int st,n,cnt;
int main(){
ios::sync_with_stdio(0);cin.tie(0);
cout.fill('0');
cin>>st>>n;
for(int i=1;i<=n;i++){
int ind,val,nxt;
cin>>ind>>val>>nxt;
e[++cnt]={ind,val,nxt};
mp[ind]=cnt;
if(!mp2.count(val)) {
mp2[val]=ind;
mp2[-val]=ind;
}
}
int it=st;
cout<<it<<'\n';
for(int i=1;i<=n;i++){
if(mp2[e[mp[it]].val]==e[mp[it]].ind) v1.push_back(e[mp[it]]);
else v2.push_back(e[mp[it]]);
it=e[mp[it]].nxt;
}
for(int i=0;i<v1.size()-1;i++){
cout.width(5);
cout<<v1[i].ind<<' '<<v1[i].val<<' ';
cout.width(5);
cout<<v1[i+1].ind<<'\n';
}
cout.width(5);
if(v1.size()) cout<<v1[v1.size()-1].ind<<' '<<v1[v1.size()-1].val<<" -1\n";
for(int i=0;i<v2.size()-1;i++){
cout.width(5);
cout<<v2[i].ind<<' '<<v2[i].val<<' ';
cout.width(5);
cout<<v2[i+1].ind<<'\n';
}
cout.width(5);
if(v2.size()) cout<<v2[v2.size()-1].ind<<' '<<v2[v2.size()-1].val<<" -1\n";
return 0;
}