P3143 [USACO16OPEN] Diamond Collector S

点击查看代码
#include<bits/stdc++.h>
using namespace std;

const int N=5e4+10;
int n,k;
int a[N];
int len[N],suf[N];

int main()
{
    ios::sync_with_stdio(0),cin.tie(0);

    cin>>n>>k;

    for(int i=1;i<=n;i++) cin>>a[i];

    sort(a+1,a+n+1);

    for(int i=1,j=1;i<=n;i++){
        while(j<=n&&a[j]-a[i]<=k) j++;
        len[i]=j-i;
    }

    for(int i=n;i>=1;i--){
        suf[i]=max(len[i],suf[i+1]);
    }

    int ans=-1e9;
    for(int i=1;i<=n;i++){
        ans=max(ans,len[i]+suf[i+len[i]]);
    }

    cout<<ans<<endl;

    return 0;
}
posted @ 2026-02-20 19:58  AnoSky  阅读(0)  评论(0)    收藏  举报