求助大佬,40求助
查看原帖
求助大佬,40求助
363495
我爱杨帆楼主2020/8/8 11:46
#include<bits/stdc++.h>
using namespace std;
int a[200000];
int nxt[200000],pre[200000];
bool b[200000];
int p,k,q;
int main()
{ int n,x,m;
  cin>>n;
  for(int i=2;i<=n;i++)
   {
      cin>>k>>p; 	
      if(p==0)
	  { 
	    
	  	nxt[i]=k;
	  	pre[i]=pre[k];
	  	nxt[pre[k]]=i;
	  	pre[k]=i;
	  }   	
   	  if(p==1)
	  { 
	    nxt[i]=nxt[k];
	    pre[nxt[k]]=i;	  
	   	nxt[k]=i;
		pre[i]=k;	
	  }	  
   }
  cin>>m;
   for(int i=1;i<=m;i++)
   {
   	 cin>>x;
   	 nxt[pre[x]]=nxt[x];
   	 pre[nxt[x]]=pre[x];
	 b[x]=1;		
   }
   int l,r;
   for(int i=1;i<=n;i++)
    {
     if(b[i]) continue;
	 if(pre[i]) continue;
	 l=i;		
    }
   for(int i=1;i<=n;i++)
   {
   	if(b[i]) continue;
   	if(nxt[i]) continue;
   	r=i;
   } 
    for(int i=l;i!=r;i=nxt[i])
     printf("%d ",i);
    cout<<r; 
  }
2020/8/8 11:46
加载中...