有点问题
查看原帖
有点问题
1060766
Renzen0519楼主2023/12/30 11:25

40分,不知怎么了

using namespace std;							//载入

struct list
{
	int pre;									//
	int next;									//
	bool in;									//
}l[100001];										//制作链表 

int main() 
{
	int head = 1;								//
	int tail = 1;								//
	l[1].in = true;								//初始化链表 
	
	int n;										// 
	cin >> n;									//输入 
	
	for(int i = 2; i <= n; i++)					//
	{											//
		l[i].in = true;							//
		int k, p;								//
		cin >> k >> p;							//
		if(p == 0)								//
		{										//
			l[i].next = k;						//
			if(head != k)						//
			{									//
				l[l[k].pre].next = i;			//
				l[i].pre = l[k].pre;			//
			}									//
			else if(head == k)					//
				head = i;						//
			l[k].pre = i;						//
		}										//
		else if(p == 1)							//
		{										//
			l[i].pre = k;						//
			if(tail != k)						//
			{									//
				l[l[k].next].pre = i;			//
				l[i].next = l[k].next;			//
			}									//
			else if(tail == k)					//
				tail = i;						//
			l[k].next = i;						//
		}										//
	}											//插入 
	
	int m;										// 
	cin >> m;									//
	for(int i = 0; i < m; i++)					//
	{											//
		int x;									//
		cin >> x;								//
		if(l[x].in == false)					//	
			continue;							//
		else if(l[x].in == true)				//
				l[x].in = false;				//
	}											//删除 
	
	for(int i = head; i != tail; i = l[i].next)	// 
	{											//
		if(l[i].in == true)						//
			cout << i << " ";					//
	}											//
	cout << tail;								//输出 
	
	return 0;									//返回值 
} ```
2023/12/30 11:25
加载中...