测试点都是对的但是0tps
代码如下
#include<bits/stdc++.h>
const int N=10000+2;
int L[N],R[N];
void insert_left(int x,int p){//x=L[p]
int q=L[p];
R[q]=x;L[p]=x;
R[x]=p;L[x]=q;
}
void insert_right(int x,int p){//x=R[p]
int q=R[p];
L[q]=x;R[p]=x;
L[x]=p;R[x]=q;
}
void remove(int x){
L[R[x]]=L[x];R[L[x]]=R[x];
L[x]=R[x]=x;
}
int main(){
L[1]=0;R[1]=0;R[0]=1;L[0]=1;
int n,k,m,x;
bool p;
scanf("%d",&n);
for(int i=2; i<=n; i++){
scanf("%d%d",&k,&p);
if(p) insert_right(i,k);
else insert_left(i,k);
}
scanf("%d",&m);
for(int i=1; i<=m; i++){
scanf("%d",&x);
remove(x);
}
int q=R[0];
for(int i=1; i<=n; i++){
printf("%d",q);
q=R[q];
if(q) printf(" ");
else break;
}
return 0;
}
谢谢大佬 求调