46分求调
查看原帖
46分求调
1400123
Wenze_Li楼主2025/8/4 09:36
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e6+5;
int n,d,l,r,mid,ans,a[N];
ll s;
int f(int k){
	l=k+1,r=n;
	while(l<=r){
		mid=(l+r)>>1;
		if(a[mid]-a[k]<=d){
			ans=mid;
			l=mid+1;
		}
		else r=mid-1;
	}
	return ans-k;
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>d;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+1+n);
	for(int i=1;i<=n;i++){
		s+=f(i);
	}
	cout<<s;
	return 0;
}
2025/8/4 09:36
加载中...