纯手撸的代码 求大佬看一下问题出在哪儿?
#include <bits/stdc++.h>
using namespace std;
int q[200100] = {1};int n;
int find(int k){
for(int i=1;i<=n;i++){
if(q[i]==k) return i;
}
return -1;
}
int main()
{
int k,p,m,x;
cin>>n;
for(int i=2;i<=n;i++){
cin>>k>>p;
n++;
if(p==0){
for(int i=n;i>=find(k);i--){
q[i+1] = q[i];
}
q[find(k)] = k;
}else{
for(int i=n;i>=find(k)+1;i--){
q[i+1] = q[i];
}
q[find(k)+1] = k;
}
}
cin>>m;
for(int i=1;i<=m;i++){
cin>>x;
for(int i=1;i<=n;i++){
if(q[i]==x){
q[i] = 0;
n--;
}
}
}
for(int i=1;i<=n;i++){
if(q[i]!=0) cout<<q[i]<<" ";
}
return 0;
}