WA3#求debug
查看原帖
WA3#求debug
535584
fzy1139950253楼主2024/1/23 17:11

我下载了#3数据,是一个200000 1,然后1e5个1和1e5个2,我算了一下觉得应该是溢出了,但开了long long还是WA 3#,是什么原因?

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<math.h>
using namespace std;
const int N=1e6+10;
unsigned long long n,c,a[N],ans;
unsigned long long b_search(unsigned long long x,unsigned long long f)
{
	long long l=0,r=n,mid;
	while(l<r)
	{
		mid=l+r>>1;
		if(a[mid]>=x) r=mid;
		else l=mid+1;
	}
	long long tmp=l;
	l=0;r=n;
	while(l<r)
	{
		mid=l+r>>1;
		if(a[mid]>x) r=mid;
		else l=mid+1;
	}
	if(r>f&&tmp<=f) return r-tmp-1;
	return r-tmp;
 } 
int main()
{
	scanf("%d %d",&n,&c);
	for(int i=0;i<n;i++) scanf("%d",&a[i]);
	a[n]=pow(2,30)+1;
	sort(a,a+n);
	for(int i=0;i<n;i++) ans+=b_search(a[i]+c,i);
	printf("%d",ans);
	return 0;
}
2024/1/23 17:11
加载中...