40分蒟蒻求救
查看原帖
40分蒟蒻求救
499231
Jacky2009楼主2021/12/12 23:33
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k;
int li[100005],tmp[100005],tmp2[100005];
signed main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++)scanf("%d\n",&li[i]);
	sort(li+1,li+n+1);
	for(int i=1;i<=n;i++){
		tmp[i]=lower_bound(li+1,li+n+1,li[i]+k)-li;
		if(li[tmp[i]]!=li[i]+k)tmp[i]--;
		tmp[i]=tmp[i]-i+1;
		cout<<tmp[i]<<" "<<li[i]<<" "<<li[i]+k<<endl;
	tmp2[i]=tmp[i];
	}
	for(int i=n-1;i>=1;i--)tmp2[i]=max(tmp2[i],tmp2[i+1]);
	int ans=0;
	for(int i=1;i<n;i++){
		if(i+tmp[i]>n)ans=max(ans,tmp[i]);
		else ans=max(ans,tmp[i]+tmp2[i+tmp[i]]);
	}
	cout<<ans;
}
2021/12/12 23:33
加载中...