pbds的平衡树为什么第一种写法不行,要用第二种?
main(void){
n=read();
while(n--){
const register int op=read(),x=read();
if(op==1) t.insert(x);
else if(op==2) t.erase(t.lower_bound(x));
else if(op==3) write(t.order_of_key(x)+1),putchar('\n');
else if(op==4) write(*t.find_by_order(x-1)),putchar('\n');
else if(op==5) write(*--t.lower_bound(x)),putchar('\n');
else write(*t.upper_bound(x)),putchar('\n');
}
return 0;
}
main(void){
n=read();
for(register int i=1;i<=n;i++){
const register long long op=read(),x=read();
if(op==1) t.insert((x<<20)+i);
else if(op==2) t.erase(t.lower_bound((x<<20)));
else if(op==3) write(t.order_of_key((x<<20))+1),putchar('\n');
else if(op==4) write((*t.find_by_order(x-1))>>20),putchar('\n');
else if(op==5) write((*--t.lower_bound((x<<20)))>>20),putchar('\n');
else write((*t.upper_bound((x<<20)+n))>>20),putchar('\n');
}
return 0;
}
(考前抱一抱佛脚,noip rp++!)