样例过了但0分
查看原帖
样例过了但0分
455309
hw20王思捷楼主2022/2/20 17:11
#include <bits/stdc++.h>
using namespace std;
int pre[200005],nxt[200005];
bool v[200005];
int main()
{
	int n,k,p;
	cin>>n;
	pre[0]=-1;
	nxt[0]=1;
	pre[n+1]=n;
	nxt[n+1]=-1;
	for(int i=1;i<=n;i++)
	{
		pre[i]=i-1;
		nxt[i]=i+1;
	}
	for(int i=2;i<=n;i++)
	{
		cin>>k>>p;
		if(p==0)
		{
			pre[nxt[i]]=pre[i];
			nxt[pre[i]]=nxt[i];
			pre[i]=pre[k];
			nxt[pre[k]]=i;
			nxt[i]=k;
			pre[k]=i;
		}
		if(p==1)
		{
		    pre[nxt[i]]=pre[i];
			nxt[pre[i]]=nxt[i];
			pre[i]=pre[k+1];
			nxt[pre[k+1]]=i;
			nxt[i]=k+1;
			pre[k+1]=i;	
		}
	}
	int t,s;
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		cin>>s;
		if(v[s]==0)
		{
			nxt[pre[s]]=nxt[s];
			pre[nxt[s]]=pre[s];
			v[s]=1;
		}
	}
	int x=0;
	for(int i=1;i<=n;i++)
	if(v[i]==0)
	x++;
	int a=nxt[0];
	while(x!=0)
	{
	     cout<<a<<" ";
		 a=nxt[a];
		 x--;	
	}
    return 0;
 } 
2022/2/20 17:11
加载中...