题解 | 【模板】整数域二分
【模板】整数域二分
https://www.nowcoder.com/practice/d483ab6bf19245518730a75c6ea108ae
二分一下就行了
void solve(){
int n,q;
cin>>n>>q;
int a[n+1];
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=q;i++){
int x,y;
cin>>x>>y;
int L=1,R=n;
int p2=-1,p1=-1;
while(L<=R){
int mid=(L+R)/2;
if(a[mid]<=y){
p2=mid;
L=mid+1;
}else{
R=mid-1;
}
}
L=1,R=n;
while(L<=R){
int mid=(L+R)/2;
if(a[mid]>=x){
p1=mid;
R=mid-1;
}else{
L=mid+1;
}
}
if(p1==-1||p2==-1){
cout<<0<<'\n';
}else{
cout<<p2-p1+1<<'\n';
}
}
}

