求关
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N=2*1e5;
int a[N+5];
int n;
int find1(int num,int id){
int left=id+1,right=n;
while(left<=right){
int mid=(left+right)/2;
if(a[mid]>=num){
right=mid-1;
}
else if(a[mid]<num){
left=mid+1;
}
}
return a[left]==num?left:0;
}
int find2(int num,int id){
int left=id+1,right=n;
while(left<=right){
int mid=(left+right)/2;
if(a[mid]>num){
right=mid-1;
}
else{
left=mid+1;
}
}
return a[right]==num?right:0;
}
int main(){
int C;
cin>>n>>C;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
int A,B;
long long sum=0;
for(int i=1;i<=n-1;i++){
B=a[i];
A=B+C;
int sum1=find1(A,i);
int sum2=find2(A,i);
if(sum1!=0&&sum2!=0)
sum+=sum2-sum1+1;
}
cout<<sum;
return 0;
}
by AlexSong @ 2023-08-31 17:35:02
That makes sense. Closed. Thank you, boss
by A_chicken_boy @ 2023-09-01 10:17:48