求助help!
查看原帖
求助help!
530570
Firrel_qaq楼主2022/5/27 21:10
#include<cstdio>
using namespace std;
int n,m;
struct student{
    int l = 0,r = 0,id = 0;
};
student a[360000];
int last(int x){
	if(a[x].l == 0) return x;
	else return last(a[x].l);
}
void print(int x){
	if(a[x].id > 0) printf("%d ",a[x].id);
	if(a[x].r != 0) print(a[x].r);
	return ;
}
int main(){
    scanf("%d",&n);
    for(int i = 2;i <= n;i++){
        int n_id,x;
        scanf("%d%d",&n_id,&x);
        if(x == 0){
            int l = a[x].l;
			a[l].r = i;
			a[x].l = i;
			a[i].l = l;
			a[i].r = x;
        }
		else{
			int r = a[x].r;
			a[r].l = i;
			a[x].r = i;
			a[i].l = x;
			a[i].r = r;
		}
		a[i].id = i;
    }
    for(int i=1;i<=m;i++){
		int x;
		scanf("%d",&x);
		a[x].id = 0;
	}
	int l = last(1);
	print(l);
    return 0;
}
2022/5/27 21:10
加载中...