求大佬帮助,2、3/4报WA
查看原帖
求大佬帮助,2、3/4报WA
253447
wjy1290087150楼主2020/11/9 16:53
#include<iostream>
using namespace std;

const int N = 100010;
int e[N], l[N], r[N], idx;
int n, m;

void init()
{
    l[1] = 0;
    r[0] = 1;
    idx = 2;
}

void add(int k, int x)
{
    e[idx] = x;       //赋值 
    r[idx] = r[k];    //左端点 
    l[idx] = k;       //右端点  
    l[r[k]] = idx;    //插入点左边点的左指针 
    r[k] = idx;       //插入点左边点的右指针
    idx++;
}

void remove(int k)
{
    r[l[k]] = r[k];
    l[r[k]] = l[k];
}

int main()
{
    init();
    add(0, 1);
    cin >> n;
    for(int i = 2; i <= n; i++)
    {
        int k, p;
        cin >> k >> p;
        if(p == 0){
            add(l[k + 1], i);
        } else if (p == 1){
            add(k + 1, i);
        }
    }
    cin >> m;
    int flag = 0;
    while(m--)
    {
        int k;
        cin >> k;
        if(flag == k) 
            continue;
        flag = k;
        remove(k + 1);
    }
    
    for(int i = r[0]; i != 1; i = r[i]) cout << e[i] << " ";
    return 0;
}
2020/11/9 16:53
加载中...