#include<bits/stdc++.h>
using namespace std;
struct node{
int id,previd,nextid,pd=0;
}nodes[100002];
bool cmp(node x,node y){
return x.previd<y.previd;
}
int main(){
int n,m,k,p;
cin>>n;
for(int i=1;i<=n;i++){
nodes[i].previd=0;
nodes[i].nextid=0;
nodes[i].id=i;
}
for(int i=2;i<=n;i++){
cin>>k>>p;
if(p==0){
nodes[i].previd=nodes[k].previd;
nodes[i].nextid=k;
nodes[nodes[k].previd].nextid=i;
nodes[k].previd=i;
}
if(p==1){
nodes[i].previd=k;
nodes[i].nextid=nodes[k].nextid;
nodes[nodes[k].nextid].previd=i;
nodes[k].nextid=i;
}
}
cin>>m;
for(int i=1;i<=m;i++){
int x;
cin>>x;
nodes[x].pd=1;
}
sort(nodes+1,nodes+n+1,cmp);
for(int i=1;i<=n;i++){
if(!nodes[i].pd){
cout<<nodes[i].id<<' ';
}
}
return 0;
}
样例能过,找不出来哪错了,谢谢