二分一下就行了

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';
        }
    }
}