当B=2时
namespace solve2
{
p_2 a[100005];
int bit[100005*2];
int long_abs(int x)
{
return max(x,-x);
}
int lowbit(int x)
{
return x&(-x);
}
void add(int x,int y)
{
while (x<=2*m)
{
bit[x]+=y;
x+=lowbit(x);
}
}
int sum(int x)
{
if (x>2*m) x=2*m;
int res=0;
while(x>0)
{
res+=bit[x];
x-=lowbit(x);
}
return res;
}
signed main()
{
for (int i=1;i<=n;i++)
{
int x,y;
cin>>x>>y;
a[i].x=x+y;
a[i].y=x-y;
}
sort(a+1,a+n+1,cmp2);
for (int i=1,j=1;i<=n;i++)
{
while(long_abs(a[i].y-a[j].y)>d)
{
add(a[j].x,-1);
j++;
}
cnt+=sum(a[i].x+d)-sum(a[i].x-d-1);
add(a[i].x+1,1);
}
return 0;
}
}