8分,求助
  • 板块P1102 A-B 数对
  • 楼主wch666
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/1 15:29
  • 上次更新2023/11/2 16:46:51
查看原帖
8分,求助
778382
wch666楼主2023/10/1 15:29
#include<bits/stdc++.h>
using namespace std;
long long n,a[200005],c;
long long findd(long long len,long long k)
{
	long long left=1;
	long long right=len;
	while(left < right)
	{
		int mid=(left+right)/2;
		if(a[mid] < k)
			left=mid+1;
		else if(a[mid] > k)
			right=mid-1;
		else
			right=mid;
	}
	if(a[left] == k)
		return left;
	return -1;
}
long long ans;
int main()
{
	scanf("%d%d",&n,&c);
	for(long long i=1; i<=n; i++)
		scanf("%d",&a[i]);
	sort(a,a+n);
	for(long long i=1; i<n; i++)
	{
		long long j=findd(n,a[i]+c);
		if(j != -1)
			ans++;
	}
	cout<<ans;
	return 0;
}
2023/10/1 15:29
加载中...