平板电视球条!!!
查看原帖
平板电视球条!!!
892084
xinxin2022楼主2024/7/22 12:49

使用了pbds

40pts

#include<bits/stdc++.h>
#include<bits/extc++.h>
using namespace std;
using namespace __gnu_cxx;
using namespace __gnu_pbds;
int n,x,op,tr_clock;
tree<pair<int,int> ,null_type,less<pair<int,int> >,rb_tree_tag,tree_order_statistics_node_update> tr;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        scanf("%d%d",&op,&x);
        tr_clock++;
        if(op==1){
            cout<<tr.order_of_key(make_pair(x,1000000005))+1<<'\n';
            //cout<<'\n';
        }
        else if(op==2){
            auto v=*tr.find_by_order(x-1);
            cout<<v.first<<'\n';
        }
        else if(op==3){
            auto it=tr.upper_bound(make_pair(x,0));
        	--it;
        	auto v=*it;
        	if(v.first==0) cout<<"−2147483647\n";
        	else cout<<v.first<<'\n';
        }
        else if(op==4){
            auto v=*tr.upper_bound(make_pair(x,1000000005));
            if(v.first==0) cout<<"2147483647\n";
        	else cout<<v.first<<'\n';
        }
        else if(op==5){
            tr.insert(make_pair(x,1000000005));
        }
        /*if(op==1){
            tr.insert(make_pair(x,tr_clock));
        }
        else if(op==2){
            auto it=tr.upper_bound(make_pair(x,0));
            tr.erase(it);
        }
        else if(op==3){
            cout<<tr.order_of_key(make_pair(x,0))+1<<'\n';
        }
        else if(op==4){
            auto v=*tr.find_by_order(x-1);
            cout<<v.first<<'\n';
        }
        else if(op==5){
        	auto it=tr.upper_bound(make_pair(x,0));
        	--it;
        	auto v=*it;
        	cout<<v.first<<'\n';
    	}
        else if(op==6){
        	auto v=*tr.upper_bound(make_pair(x,1000005));
        	cout<<v.first<<'\n';
		} */
    }
    return 0;
}
2024/7/22 12:49
加载中...