求大佬看看怎么改,2、3题TLE。第8题WA,不会用map。
#include<stdio.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main(void){
int n,c;
int i;
int count=0;
long long a[200009];
scanf("%d%d",&n,&c);
for(i = 0;i<n;i++){
scanf("%lld",&a[i]);
}
sort(a,a+n);
for(i = 0;i<n-2;i++){
int l = i+1,r = n+1;
while(l<r){
int mid = (l+r)>>1;
if(a[mid] < a[i] + c){
l = mid + 1;
}else{
r = mid;
}
}
for(int j = 0;;j++){
if(a[r+j] == a[i] + c){
count++;
}else{
break;
}
}
}
if(a[n-1]-a[n-2] == c){
count++;
}
printf("%d",count);
return 0;
}