超时两组,对两组,剩下的WA
代码,求帮助
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,sum;
long long c;
scanf("%d%lld",&n,&c);
long long a[n];
for(int i=0;i<n;i++){
scanf("%lld",&a[i]);
}
sort(a,a+n);
sum=0;
int l=0,r=n-1,mid=l+(r-l)/2;
for(int i=0;i<n;i++){
l=0,r=n-1,mid=l+(r-l)/2;
while(l<=r){
if(a[i]+c==a[mid]){
for(int j=mid;j<n;j++){
if(a[j]!=a[i]+c){
break;
}
sum++;
}
}
if(a[i]+c<=a[mid]) r=mid-1;
else l=mid+1;
mid=int(l+(r-l)/2);
}
}
printf("%d",sum);
}