只有40分,后面RE
#include<bits/stdc++.h>
using namespace std;
vector<long long>a;
long long n,pd,m,k,x,ans=2;
long long find(long long l)
{
long long ll=0;
for(int j=0;j<n;j++)
if(a[j]==l)
ll=j;
return ll;
}
int main()
{
scanf("%ld",&n);
a.push_back(0);
a.push_back(1);
for(int i=1;i<n;i++)
{
scanf("%ld%ld",&k,&pd);
//cout<<find(k)<<endl;
if(pd)
a.insert(find(k)+a.begin()+1,ans);
else
a.insert(find(k)+a.begin(),ans);
ans++;
}
scanf("%ld",&m);
for(int i=1;i<=m;i++)
{
scanf("%ld",&x);
for(int j=0;j<=ans;j++)
{
if(a[j]==x)
a[j]=-1;
}
}
for(int j=0;j<ans;j++)
if(a[j]==-1||a[j]==0)
continue;
else
printf("%ld ",a[j]);
return 0;
}