1,5过了234WA了有好兄弟一样吗?
查看原帖
1,5过了234WA了有好兄弟一样吗?
621293
kjh21373456楼主2022/4/1 15:45
#include<stdlib.h>
typedef struct Node
{
	int num;
	struct Node *rlink;
	struct Node *llink;
}Node,*Link;
Node node[100005];

int main()
{
	int N;
	Link p,q,head=&node[1];
	scanf("%d",&N);
	int a,b;
	node[1].num=1;
	for(int i=2;i<=N;i++)
	{
		scanf("%d%d",&a,&b);
		node[i].num=i;
		if(b==1)
		{
			p=node[a].rlink;
			if(p!=NULL)
			{
				node[i].rlink=node[a].rlink;
				p->llink=&node[i];
				node[a].rlink=&node[i];
				node[i].llink=&node[a];
			}
			else
			{
				node[a].rlink=&node[i];
				node[i].llink=&node[a];
			}
		}
		else if(b==0)
		{
			p=node[a].llink;
			if(p!=NULL)
			{
				node[i].llink=node[a].llink;
				p->rlink=&node[i];
				node[a].llink=&node[i];
				node[i].rlink=&node[a];
			}
			else
			{
				head=&node[i];
				node[a].llink=&node[i];
				node[i].rlink=&node[a];
			}
		}
	}
	int m,j;
	scanf("%d",&m);
	for(int i=0;i<m;i++)
	{
		scanf("%d",&j);
		p=node[j].llink;
		q=node[j].rlink;
		if(p==NULL && q!=NULL)
		{
			head=q;
			q=NULL;
		}
		if(p!=NULL && q==NULL)
		{
			p->rlink=q;
			p=NULL;
		}
		if(p!=NULL && q!=NULL)
		{
			q->llink=p;
			p->rlink=q;
			p=NULL;
			q=NULL;
		}
	}
	for(p=head;p!=NULL;p=p->rlink)
	{
		printf("%d ",p->num);
	}
} 
2022/4/1 15:45
加载中...