求救!为什么全WA了,样例能过
查看原帖
求救!为什么全WA了,样例能过
180684
HEXA_DOT楼主2022/12/29 18:50
#include <bits/stdc++.h>
using namespace std;
int lst[100005][2];
int main(){
	int n;
	scanf("%d", &n);
	lst[1][0] = -1; lst[1][1] = -1;
	int head = 1;
	for(int i = 2;i <= n;i++){
		int k, p;
		scanf("%d%d", &k, &p);
		if(p == 0){
			if(lst[k][0] == -1){
				head = i;
			}
			lst[i][0] = lst[k][0];
			lst[lst[k][0]][1] = i;
			lst[k][0] = i;
			lst[i][1] = k;
		}
		else{
			lst[i][1] = lst[k][1];
			lst[lst[k][1]][0] = i;
			lst[k][1] = i;
			lst[i][0] = k;
		}
	}
	
	int m;
	scanf("%d", &m);
	for(int i = 0;i < m;i++){
		int t;
		scanf("%d", &t);
		if(lst[t][0] == -2){
			continue;
		}
		else{
			lst[lst[t][0]][1] = lst[t][1];
			lst[t][0] = -2;
		}
	}
	
	int now = head;
	printf("%d", head);
	while(true){
		if(lst[now][1] == -1)	break;
		printf(" ");
		printf("%d", lst[now][1]);
		now = lst[now][1];
	}
	printf("\n");
	return 0;
}
2022/12/29 18:50
加载中...