题目
代码:
#include <bits/stdc++.h>
using namespace std;
struct node{
int l,r;
}a[100005];
int n,m;
int main(){
cin>>n;
a[0].r=1,a[1].l=0;
int k,p,x;
for(int i=2;i<=n;i++){
cin>>k>>p;
if(p==0){
a[a[k].l].r=i;
a[i].l=a[k].l;
a[k].l=i;
a[i].r=k;
}
if(p==1){
a[a[k].r].l=i;
a[i].r=a[k].r;
a[k].r=i;
a[i].l=k;
}
}
cin>>m;
for(int i=1;i<=m;i++){
cin>>x;
a[a[x].l].r=a[x].r;
a[a[x].r].l=a[x].l;
}
int now=0;
while(1){
if(a[now].r==0)break;
cout<<a[now].r<<" ";
now=a[now].r;
}
return 0;
}
样例过了,然后也就不知道哪错了,很懵(应该是我太蒟了)