你这问题大了
by only_joker @ 2023-08-22 09:07:13
```cpp
#include <cmath>
#include <string>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=1e7+5;
long long a[N],n,c,cnt=0;
int half(int key){
int l=0,r=n+1,mid;
while(l+1<r){
mid=(r+l)/2;
if(a[mid]<=key){
l=mid;
}
else{
r=mid;
}
}
return l;
}
int half1(int key){
int l=0,r=n+1,mid;
while(l+1<r){
mid=(r+l)/2;
if(a[mid]<key){
l=mid;
}
else{
r=mid;
}
}
return l;
}
int main() {
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
cnt+=half(a[i]+c)-half1(a[i]+c);
}
cout<<cnt;
return 0;
}
```
也是二分,我重构了一遍,一直卡在92,后来开了longlong就A了
by only_joker @ 2023-08-22 09:46:21
@[jfm0211](/user/1037310)
by only_joker @ 2023-08-22 09:47:30
OK
by jfm0211 @ 2023-08-22 10:43:07