竞赛讨论区 > D 150 求 hack
头像
Pig_py
发布于 02-05 10:59
+ 关注

D 150 求 hack

#include<bits/stdc++.h>
using namespace std;
int n,cnt,Q;
map<int,int>mp;
int head;
struct List{
    int to,val,frm;
}e[200005];
int main(){
    scanf("%d",&Q);
    while(Q--){
        int opt,x,y;
        scanf("%d",&opt);
        if(opt==1){
            scanf("%d%d",&x,&y);
            if(!y){
                cnt++;
                e[cnt].val=x;
                mp[x]=cnt;
                head=cnt;
            }
            else{
                cnt++;
                e[cnt].val=x;
                mp[x]=cnt;
                int to=e[mp[y]].to;
                e[mp[y]].to=cnt;
                e[cnt].frm=mp[y];
                e[cnt].to=to;
                e[to].frm=cnt;
            }
        }
        else{
            scanf("%d",&x);
            if(e[head].val==x){
                e[head].val=0;
                int to=e[head].to;
                e[head].to=0;
                head=to;
                e[head].frm=0;
                mp[x]=0;
            }
            else{
                e[mp[x]].val=0;
                e[e[mp[x]].frm].to=e[mp[x]].to;
                e[e[mp[x]].to].frm=e[mp[x]].frm;
                mp[x]=0;
            }
        }
    }
    int ans=0;
    for(int i=head;i;i=e[i].to)ans++;
    printf("%d\n",ans);
    for(int i=head;i;i=e[i].to){
        printf("%d ",e[i].val);
    }
}

全部评论

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

等你来战

查看全部

热门推荐