#include <bits/stdc++.h>
using namespace std;
vector<int>v;
int fin(int n){
for (int i=0;i<v.size();i++)if(v[i]==n)return i;
return -1;
}
int main(){
int n,k,p,m,x;
cin>>n;
v.insert(v.begin(),1);
for (int i=0;i<n-1;i++){
cin>>k>>p;
if (p==0)v.insert(v.begin()+fin(k)+1,i+2);
else v.insert(v.begin()+fin(k),i+3);
}cin>>m;
while (m--){
cin>>x;
v.erase(v.begin()+fin(k));
}for (int i=0;i<v.size();i++)cout<<v[i]<<' ';
cout<<endl;
return 0;
}
样例没过,我的输出是这样的:
4 2
谁帮忙看看,不知道哪里不对(这题我用的是vector,别介意)。
把自己搞蒙了