40分,不知怎么了
using namespace std; //载入
struct list
{
int pre; //
int next; //
bool in; //
}l[100001]; //制作链表
int main()
{
int head = 1; //
int tail = 1; //
l[1].in = true; //初始化链表
int n; //
cin >> n; //输入
for(int i = 2; i <= n; i++) //
{ //
l[i].in = true; //
int k, p; //
cin >> k >> p; //
if(p == 0) //
{ //
l[i].next = k; //
if(head != k) //
{ //
l[l[k].pre].next = i; //
l[i].pre = l[k].pre; //
} //
else if(head == k) //
head = i; //
l[k].pre = i; //
} //
else if(p == 1) //
{ //
l[i].pre = k; //
if(tail != k) //
{ //
l[l[k].next].pre = i; //
l[i].next = l[k].next; //
} //
else if(tail == k) //
tail = i; //
l[k].next = i; //
} //
} //插入
int m; //
cin >> m; //
for(int i = 0; i < m; i++) //
{ //
int x; //
cin >> x; //
if(l[x].in == false) //
continue; //
else if(l[x].in == true) //
l[x].in = false; //
} //删除
for(int i = head; i != tail; i = l[i].next) //
{ //
if(l[i].in == true) //
cout << i << " "; //
} //
cout << tail; //输出
return 0; //返回值
} ```