92分,不知道哪错了
  • 板块P1102 A-B 数对
  • 楼主PRA666
  • 当前回复7
  • 已保存回复7
  • 发布时间2022/4/15 21:03
  • 上次更新2023/10/28 03:40:24
查看原帖
92分,不知道哪错了
537519
PRA666楼主2022/4/15 21:03
#include<bits/stdc++.h>
using namespace std;
int n,l,r,mid,t=0,big=0,small=0;
long long a[200001],c;
int main()
{
	cin>>n>>c;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	for(int i=1;i<=n;i++)
	{
		l=1;
		r=n;
		while(l<=r)
		{
			mid=(r+l)/2;
			if(a[i]+c<=a[mid])
			{
				r=mid-1;
			}
			if(a[i]+c>a[mid])
			{
				l=mid+1;
			}
		}
		small=l;
		l=i+1;
		r=n;
		while(l<=r)
		{
			mid=(r+l)/2;
			if(a[i]+c<a[mid])
			{
				r=mid-1;
			}
			if(a[i]+c>=a[mid])
			{
				l=mid+1;
			}
		}
		big=l;
		t+=big-small;
	}
	cout<<t;
	return 0;
}

rt,真不知道哪错了 鬼知道我咋写的

2022/4/15 21:03
加载中...