用的二分做的,题目测试点过了,为什么全WA了?
查看原帖
用的二分做的,题目测试点过了,为什么全WA了?
662006
QLUzongyuxing楼主2022/1/17 19:33
#include<bits/stdc++.h>
using namespace std;
const int MAXN=20000000;
int n,m,a[MAXN];
long long c=0;
int main()
{
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	sort(a,a+1);
	for(int i=0;i<n;i++){
		int l=0,r=n-1;
		while(l<r){
			int mid=(l+r)>>1;
			if(a[mid]>=m+a[i]){
			r=mid;
			}else {
			l=mid+1;
		    }
		}
		if(a[l]==m+a[i])
		c++;
	}
	cout<<c<<endl;
}
2022/1/17 19:33
加载中...