#include<bits/stdc++.h>
using namespace std;
int n;
struct note{
int l,r;
};
map<int,note> mp;
int main(){
scanf("%d",&n);
mp[1].l=0;;
mp[1].r=-1;
mp[0].r=1;
for(int i=2;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
if(y==0){
int f=mp[x].l;
mp[x].l=i;
mp[i].l=f;
mp[i].r=x;
mp[f].r=i;
}
if(y==1){
int f=mp[x].r;
mp[x].r=i;
mp[i].r=f;
mp[i].l=x;
mp[f].l=i;
}
}
int m;
scanf("%d",&m);
for(int i=1;i<=m;i++){
int x;
scanf("%d",&x);
mp[mp[x].l].r=mp[x].r;
mp[mp[x].r].l=mp[x].l;
}
int now=mp[0].r;
for(int i=1;i<=n;i++){
if(mp[now].r==-1){
printf("%d",now);
break;
}
printf("%d ",now);
now=mp[now].r;
}
return 0;
}
第2,3,4点WA了,求救;