40求助
查看原帖
40求助
684245
zhangyaiwei楼主2022/6/18 14:52
#include<bits/stdc++.h>
using namespace std;
struct kk{
	int z,y,v;
};
int main(){
	int n,m,fx,x,Z,Y,d[111111]={};
	vector<kk> list;
	list.push_back({0,0,0});
	list.push_back({0,0,1});
	d[1]=1;
	cin>>n;
	for(int i=2;i<=n;i++){
		cin>>x>>fx;
		d[i]=list.size();
		Z=Y=0;
		if(fx==0){
			Z=list[list[d[x]].z].v;
			list[d[list[list[d[x]].z].v]].y=i;
			list[d[x]].z=i;
			Y=x;
		}
		else{
			Y=list[list[d[x]].y].v;
			list[d[list[list[d[x]].y].v]].z=i;
			list[d[x]].y=i;
			Z=x;
		}
		list.push_back({Z,Y,i});
	}
	cin>>m;
	for(int i=0;i<m;i++){
		cin>>x;
		list[list[d[x]].z].y=list[d[x]].y;
		list[list[d[x]].y].z=list[d[x]].z;
	}
	int a=1;
	while(1){
		if(list[a].z==0){
			break;
		}
		else{
			a=list[a].z;
		}
	}
	while(1){
		cout<<list[a].v<<" ";
		if(list[a].y==0){
			break;
		}
		else{
			a=list[a].y;
		}
	}
}
2022/6/18 14:52
加载中...