76分求助,使用了lowerupperbound,#2-4RE
  • 板块P1102 A-B 数对
  • 楼主pjpdsk
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/10/4 16:24
  • 上次更新2023/11/2 15:47:32
查看原帖
76分求助,使用了lowerupperbound,#2-4RE
735881
pjpdsk楼主2023/10/4 16:24
#include<bits/stdc++.h>

using namespace std;

const int N = 20005 ;
long long n,c ;
long long i,j ;
long long ans ;
long long num[N] ;
int main()
{
	scanf("%d%d",&n,&c) ;
	for (int i1=1 ;i1<=n ;++i1)
	{	
		scanf("%d",&num[i1]) ;
		
	}
		
	sort(num+1,num+1+n) ;
	
	for (int k=1 ;k<=n ;++k)
	{
		if (num[k] != num[k-1])
		{
			i=lower_bound(num+1,num+1+n,num[k]+c) - num ;
			j=upper_bound(num+1,num+1+n,num[k]+c) - num ;
			if (i == n+1) break ;
		}
		ans += j-i ;
	}
	
	printf("%lld",ans) ;
}

2023/10/4 16:24
加载中...