用二分只有八分求大佬帮帮
  • 板块P1102 A-B 数对
  • 楼主zq1one
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/20 17:09
  • 上次更新2024/3/20 19:24:14
查看原帖
用二分只有八分求大佬帮帮
1084455
zq1one楼主2024/3/20 17:09
#include<bits/stdc++.h>
#define int long long
using namespace std;

int n,c,cnt;
int a[200005];

bool isbule(int x,int target){
	if(x<target){
		return true;
	} else{
		return false;
	}
} 

bool iserfen(int x){
	int l=-1,r=n;
	int mid;
	while(l+1<r){
		mid=(l+r)/2;
		if(isbule(a[mid],x)){
			l=mid;
		}else{
			r=mid;
		}
	}
	if(a[r]==x) return true;
	else return false;
}

signed main(){
	cin>>n>>c;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	sort(a,a+n);
	for(int i=0;i<n;i++){
		if(iserfen(c+a[i])){
			cnt++;
		}
	}
	cout<<cnt;
	return 0;
}
2024/3/20 17:09
加载中...