竞赛讨论区 > 我这代码为啥过不去D题?
头像
圣诞不错
发布于 02-05 15:51
+ 关注

我这代码为啥过不去D题?

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int _MAX=0x3f3f3f3f;
const int N=1e6+10;
unordered_map<int ,int>p;
int e[N],l[N],r[N],idx=2;
void insert(int x,int y){
    int t=p[y];
    e[idx]=x;
    r[idx]=r[t];
    l[idx]=t;
    l[r[t]]=idx;
    r[t]=idx++;
}
void insert_head(int x){
    e[idx]=x;
    r[idx]=r[0];
    l[idx]=0;
    r[0]=idx++;
}
void remove(int x){
    int t=p[x];
    r[l[t]]=r[t];
    l[r[t]]=l[t];
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    r[0]=1;
    l[1]=0;
    int q;
    cin>>q;
    int x,y,z;
    int cnt=0;
    while(q--){
        cin>>x;
        if(x==1){
            cnt++;
            cin>>y>>z;
            p[y]=idx;
            if(z==0){
                insert_head(y);
            }
            else {
                insert(y,z);
            }
        }   
        else {
            cnt--;
            cin>>y;
            remove(y);
            p.erase(y);
        }
    }
    cout<<cnt<<'\n';
    for(int i=r[0];i!=1;i=r[i]){
        cout<<e[i]<<' ';
    }
    return 0;
}

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐