92求助
查看原帖
92求助
735763
_ChongYun_楼主2023/1/1 13:12

WA #3

#include<bits/stdc++.h>
using namespace std;
int n,c,ans=0;
int a[1145140];
bool check_eee(int mid,int x){
	return a[mid]<=x;
}

bool check_aaa(int mid,int x){
	return a[mid]<x;
}

int eee_find(int x){
	int l=0,r=n+1;
	while(l+1<r){
		int mid=(l+r)/2;
		if(check_eee(mid,x)){
			l=mid;
		}else{
			r=mid;
		}
	}
	return l;
}

int aaa_find(int x){
	int l=0,r=n+1;
	while(l+1<r){
		int mid=(l+r)/2;
		if(check_aaa(mid,x)){
			l=mid;
		}else{
			r=mid;
		}
	}
	return l;
}

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++){
		ans+=eee_find(a[i]+c)-aaa_find(a[i]+c);
	}
	cout<<ans<<endl;
	return 0;
}

2023/1/1 13:12
加载中...