满江红求助玄关
查看原帖
满江红求助玄关
1286983
HangingMirror楼主2024/8/8 14:16
#include<bits/stdc++.h>
using namespace std;
class lb{
    public:
        int l[100005],r[100005];  
    	void add(int a,int k,int p){
            if(p==1){
                r[k]=r[a];
                l[k]=a; 
                r[a]=k;
                l[r[k]]=k;
            }else{
                r[k]=a;
                l[k]=l[a];
                l[a]=k;
                r[l[k]]=k;
            }
        }
};
lb a;
bool b[100005];
int main(){
    int n,m;
    cin>>n>>m;
    a.add(0,1,1);
    for(int i=2;i<=n;i++){
        int k,p;
        cin>>k>>p;
        a.add(i,k,p);
    }
    while(m--){
        int x;
        cin>>x;
        b[x]=true;
    }
    for(int i=a.r[0];i;i=a.r[i]){
        if(!b[i])    
            cout<<i<<" ";
    }
    return 0;
}
2024/8/8 14:16
加载中...