本地都编译过了,洛谷告诉我编译错误,硬是没找出来
查看原帖
本地都编译过了,洛谷告诉我编译错误,硬是没找出来
490978
小超手123楼主2022/2/6 12:31
#include<bits/stdc++.h>
using namespace std;
int n,tot;
struct node{
	int key,pre,nxt;
	node(int _key=0,int _pre=0,int _nxt=0){
		key=_key,pre=_pre,nxt=_nxt;
	}
};
node s[100000];
int index[100005]; //index[i]=j表示i的编号 
void ins_back(int x,int y){ //把y插入到x的后面(x,y) 
	int now=index[x];
	s[++tot]=node(y,now,s[now].nxt);
	s[s[now].nxt].pre=tot;
	s[now].nxt=tot;
	index[y]=tot; 
}
void ins_front(int x,int y){ //把y插入x的前面(y,x) 
	int now=index[x];
	s[++tot]=node(y,s[now].pre,now);
	s[s[now].pre].nxt=tot;
	s[now].pre=tot;
	index[y]=tot; 
}
void del(int x){//删除x 
	int now=index[x];
	s[s[now].pre].nxt=s[now].nxt;
	s[s[now].nxt].pre=s[now].pre;
	index[x]=0;
}
int main(){
	int m,k,p,now,x;
	cin>>n;
	s[0]=node();
	ins_back(0,1);
	for(int i=2;i<=n;i++){
		cin>>k>>p;
		p?ins_back(k,i):ins_front(k,i);
	} 
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>x;
		if(index[x])del(x);
	}
	now=s[0].nxt;
	while(now){
		cout<<s[now].key<<" ";
		now=s[now].nxt;
	}
    return 0; 
}
2022/2/6 12:31
加载中...