ll query_Kth(int l,int r,int k){
vector<pair<ll,int> >vec;
vec.clear();
set<zone>::iterator itr=split(r+1),itl=split(l);
for(set<zone>::iterator it=itl;it!=itr;++it){
vec.push_back(make_pair(it->val,it->r - it->l +1));
}
sort(vec.begin(),vec.end());
for(vector<pair<ll,int> >::iterator it=vec.begin();it!=vec.end();++it){
if(k-=it->second <=0)return it->first;
}
return -1;
}
一时封装一时爽,一个UB死全家
if(k-=it->second <=0)return it->first;
k-=it->second <=0 经典UB现场!
这种地方建议不要为了压行简写
写成:
k-=it->second;
if(k<=0)return it->first;
就对了!
调了114514秒真是气死了!