90分WA on#6
查看原帖
90分WA on#6
937774
ylzpl楼主2025/6/24 21:49
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e7+5;
int a[maxn],n,k;
int l[maxn],r[maxn];
signed main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+1+n);
	if(n==1){
		cout<<1;
		return 0;
	}
	int cnt=0;
	for(int i=1,j=1;i<=n;i++){
		while(j<=i&&a[i]-a[j]>k){
			j++;
		}
		l[i]=i-j+1;
		if(i>1){
			l[i]=max(l[i],l[i-1]);
		}
	}
	for(int i=n,j=n;i>=1;i--){
		while(j>=i&&a[j]-a[i]>k){
			j--;
		}
		r[i]=j-i+1;
		if(i<n){
			r[i]=max(r[i],r[i+1]);
		}
	}
	for(int i=1;i<=n;i++){
		cnt=max(cnt,r[i]+l[i+1]);
	}
    if(a[n]-a[1]<=k){
        cnt=max(cnt,n);
    }
	cout<<cnt;
	return 0;
} 
2025/6/24 21:49
加载中...