因为要判断是否有一半在所给出的区间内,所以说可以判断线段的中点是否在所给的区间内,
考虑优化我们可以将区间按照中点的位置进行排序然后进行二分查找
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
vector<int> a(n);
for(int i=0;i<n;i++)
{
int l,r;
cin>>l>>r;
a[i]=l+r;
}
sort(a.begin(),a.end());
while(m--)
{
int l,r;
cin>>l>>r;
l*=2,r*=2;
int l1=lower_bound(a.begin(),a.end(),l)-a.begin();
int r1=upper_bound(a.begin(),a.end(),r)-a.begin();
cout<<r1-l1<<endl;
}
return 0;
}