哪里出错了,www
  • 板块P1102 A-B 数对
  • 楼主bzdbkj
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/29 20:59
  • 上次更新2024/10/30 00:41:12
查看原帖
哪里出错了,www
1202888
bzdbkj楼主2024/10/29 20:59
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=3e5+10;
unordered_map<ll,ll>q;
ll n,k,a[N],res=0;
ll check(ll x)
{
	ll l=1,r=n;
	while(l<r)
	{
		ll mid=(l+r+1)>>1;
		if((a[mid]-x)<=k)l=mid;
		else r=mid-1;
	}
	if(a[l]-x!=k)return 0;
	return a[l];
}
int main()
{
	cin>>n>>k;
	for(ll i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+n+1,greater<ll>());
	for(ll i=1;i<=n;i++)
	{
	    if(a[i]!=0)
	    q[a[i]]++;
	    else res+=q[k];
	}
	sort(a+1,a+n+1);
	
	for(auto t:q)
	{
		ll a=t.first,b=t.second;

		res=res+(q[check(a)]*b);
	}
	cout<<res;
}

这个为什么不行啊

2024/10/29 20:59
加载中...