洛谷P3369 【模板】普通平衡树
1 #include<bits/stdc++.h> 2 using namespace std; 3 vector<int> q; 4 int n,opt,x; 5 int main() 6 { 7 scanf("%d",&n); 8 while(n--) 9 { 10 scanf("%d%d",&opt,&x); 11 switch(opt) 12 { 13 case 1:q.insert(lower_bound(q.begin(),q.end(),x),x);break; 14 case 2:q.erase(lower_bound(q.begin(),q.end(),x));break; 15 case 3:printf("%d\n",lower_bound(q.begin(),q.end(),x)-q.begin()+1);break; 16 case 4:printf("%d\n",q.at(x-1));break; 17 case 5:printf("%d\n",q.at(lower_bound(q.begin(),q.end(),x)-q.begin()-1));break; 18 case 6:printf("%d\n",q.at(upper_bound(q.begin(),q.end(),x)-q.begin()));break; 19 } 20 } 21 return 0; 22 }