答案对了,但是没完全对
查看原帖
答案对了,但是没完全对
370001
Belmaxi楼主2021/8/20 11:35
#include<iostream>
#include<cstdio>
using namespace std;
int n;
struct student{
	int left;
	int right;
}s[100001];
bool v[100001];
int get_left(){
	int l=s[1].left;
	while(s[l].left) l=s[l].left;
	return l;
}
int main(){
	//freopen("P1160_2.in","r",stdin);
	//freopen("myans.out","w",stdout);
	scanf("%d",&n);
	s[1].left=s[1].right=0;
	for(int i=2;i<=n;i++){
		int k,p;
		scanf("%d%d",&k,&p);
		if(p==0) s[i].left=s[k].left,s[s[k].left].right=s[k].left=i,s[k].left=i,s[i].right=k;
		if(p==1) s[i].right=s[k].right,s[s[k].right].left=s[k].right=i,s[k].right=i,s[i].left=k;
	}
	int m;
	scanf("%d",&m);
	int j=get_left();
	for(int i=1;i<=m;i++){
		int k;
		scanf("%d",&k);
		if(v[k]) continue;
		v[k]=1;
		s[s[k].left].right=s[k].right;
		s[s[k].right].left=s[k].left;
		s[k].left=0;
		s[k].right=0;
	}
	while(j){
		printf("%d ",j);
		j=s[j].right;
	}
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

这一波啊 验证了样例和第二个点 文件操作还fc了一下没有找到差异,可是交了评测就全WA

2021/8/20 11:35
加载中...