玄关,求调
查看原帖
玄关,求调
1252442
lucy2012楼主2024/4/4 18:36
#include<bits/stdc++.h>
using namespace std;
int t,n,a[50100];
bool check(int x){
	for(int i=x;i<=n;i++){
		int l=i-x+1;
		if(a[i]<=0)
			if(-a[l]<=t) return 1;
		if(a[l]>=0)
			if(a[i]<=t) return 1;
		if(a[l]<=0&&a[i]>=0)
			if(min(-a[l],a[i])+(a[i]-a[l])<=t) return 0;
	}
	return 0;
}
int main(){
	cin>>t>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+1+n);
	int l=-1,r=n+1;
	while(l+1<r){
		int mid=l+(r-l)/2;
		if(check(mid))
			l=mid;
		else
			r=mid;
	}
	cout<<l;
	return 0;
}
2024/4/4 18:36
加载中...