只对了一个点......
查看原帖
只对了一个点......
1258976
I_am_nothing楼主2024/6/15 20:13
#include<bits/stdc++.h>
using namespace std;
long long n,c,a[10005],s=0;
int main()
{
	cin>>n>>c;
	for(int i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	sort(a+1,a+1+n);
	for(int i=1;i<n;i++)
	{
		long long l=i+1,r=n,s1=0,s2=0;
		while(l<r)
		{
			long long mid=(l+r)/2;
			if(a[mid]-a[i]==c) s1=mid;
			if(a[mid]-a[i]>=c) r=mid;
			else l=mid+1;
		}
		l=i+1,r=n;
		while(l<r)
		{
			long long mid=(l+r)/2;
			if(a[mid]-a[i]==c) s2=mid;
			if(a[mid]-a[i]>c) r=mid;
			else l=mid+1;
		}
		s+=abs(s1-s2)+1;
	}
	cout<<s;
}
2024/6/15 20:13
加载中...