全RE求助,样例全对
查看原帖
全RE求助,样例全对
1349739
linrun0504楼主2024/8/5 18:16
#include<bits/stdc++.h>
using namespace std;
long long n,k,a[1145140],ans;
int main(){
	cin>>n>>k;
	for(long long i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	for(long long i=n;i>=1;i--){
		long long l=1,r=i-1,mid;
		while(l<r){
			if(a[i]-a[mid]==k){
				ans++;
				if(a[mid]==a[mid-1]){
					ans--;
					long long c=mid;
					while(a[c]==a[c-1]){
						r--;
						c--;
						ans++;
					}
					if(c==1&&a[1]==a[2]) ans++;
				}
				
			}
			if(a[i]-a[mid]>k){
				l++;
			}else{
				r--;
			}
			mid=(r+l+1)/2;
		}
	}
	cout<<ans;
	return 0;
}
2024/8/5 18:16
加载中...