社区讨论

40分,中间三个点WA,样例已过,求助大佬

P1160队列安排参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo1814pr
此快照首次捕获于
2023/10/22 16:42
2 年前
此快照最后确认于
2023/11/02 16:33
2 年前
查看原帖
CPP
#include<iostream>
using namespace std;

int n,m;
	
struct node
{
	int pre,nxt;
	int key;
	node(int _key=0,int _pre=0,int _nxt=0)
	{
		pre=_pre; nxt=_nxt; key=_key;
	}
};
	
node s[200000];
int tot=1;

void ins_front(int x,int y)
{
	tot++;
	s[tot].key=y;
	s[tot].pre=s[s[x].pre].key;
	s[tot].nxt=x;
	s[s[x].pre].nxt=y;
	s[x].pre=y;
} 

void ins_back(int x,int y)
{
	tot++;
	s[tot].key=y;
	s[tot].nxt=s[s[x].nxt].key;
	s[tot].pre=x;
	s[s[x].nxt].pre=y;
	s[x].nxt=y;
} 

void del(int x)
{
	s[s[x].nxt].pre=s[s[x].pre].key;
	s[s[x].pre].nxt=s[s[x].nxt].key;
}

int main()
{
	cin>>n;
	
	int tmp1,tmp2;
	
	s[1].key=1;
	for(int i=2;i<=n;i++)
	{
		cin>>tmp1>>tmp2;
		if(tmp2==0) 
		{
			ins_front(tmp1,i);
		}
		else
		{
			ins_back(tmp1,i);
		}
	}
	
	cin>>m;
	
	int tmp3;
	int r; 
	
	for(int i=1;i<=m;i++)
	{
		cin>>tmp3;
		if(r!=tmp3)
		{
			del(tmp3);
			r=tmp3;
		}	
	}
	
	int now=s[0].nxt;
	while(now)
	{
		cout<<s[now].key<<" ";
		now=s[now].nxt;
	}
	
	return 0;
} 

回复

2 条回复,欢迎继续交流。

正在加载回复...