社区讨论

76分求助,使用了lowerupperbound,#2-4RE

P1102A-B 数对参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo16vtib
此快照首次捕获于
2023/10/22 16:10
2 年前
此快照最后确认于
2023/11/02 15:47
2 年前
查看原帖
CPP
#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) ;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...