奇奇怪怪的错误

P6136 【模板】普通平衡树(数据加强版)

critnos @ 2020-02-27 12:21:53

RT,不知道为什么只有10pts

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#define ll long long
using namespace std;
using namespace __gnu_pbds;
tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> a;
int main()
{
    int opt,m,n,last=0,s=0,i;
    ll x;
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
    {
        scanf("%lld",&x);
        a.insert((x<<20)+i);
    }
    for(i=n;i<n+m;i++)
    {
        scanf("%d%lld",&opt,&x);
        x^=last;
        if(opt==1) a.insert((x<<20)+i);
        if(opt==2) a.erase(a.lower_bound(x<<20));
        if(opt==3) printf("%d\n",last=(a.order_of_key(x<<20)+1));
        if(opt==4) printf("%d\n",last=((*a.find_by_order(x-1))>>20));
        if(opt==5) printf("%d\n",last=((*(--a.lower_bound(x<<20)))>>20));
        if(opt==6) printf("%d\n",last=((*(a.lower_bound(x+1<<20)))>>20));
        if(opt>2) s^=last;
    }
    printf("%d",s);
}

by 老八小憨包 @ 2020-02-27 12:48:23

不会平板电视


上一页 |