#include<bits/stdc++.h>
using namespace std;
map<int,int>K,N,M;
//Key值,Next节点的地址,Map用于记录该绝对值是否出现过
vector<int>V;
int main()
{
int s,n,x,y,z,i;
scanf("%d%d",&s,&n);
while(n--){
scanf("%d%d%d",&x,&y,&z);
K[x]=y,N[x]=z;
}
M[abs(K[s])]=1;
printf("%05d %d ",s,K[s]);
s=N[s];
while(s!=-1){
y=abs(K[s]);
if(!M[y]) M[y]=1,printf("%05d\n%05d %d ",s,s,K[s]);
else V.push_back(s);
s=N[s];
}
printf("-1\n");
if(V.size()){
printf("%05d %d ",V[0],K[V[0]]);
for(i=1;i<V.size();i++) printf("%05d\n%05d %d ",V[i],V[i],K[V[i]]);
printf("-1\n");
}
}
PAT GPLT L2-002.链表去重
最新推荐文章于 2022-02-04 22:08:16 发布