rt.
赛时过了,赛后 FST,WA 掉的点太大了,下不下来。
代码见下。
#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define INF 0x3f3f3f3f
#define INFLL 0x3f3f3f3f3f3f3f3f
#define rep(k,l,r) for(int k=l;k<=r;++k)
#define per(k,r,l) for(int k=r;k>=l;--k)
#define cl(f,x) memset(f,x,sizeof(f))
using namespace std;
const int N=1e3+5;
int a[N],sum[N],T,n,k;
signed main() {
scanf("%lld",&T);
while(T--) {
scanf("%lld%lld",&n,&k);
int p=0,res=0;
rep(i,1,n)
scanf("%lld",&a[i]),sum[i]=sum[i-1]+a[i],res=max(res,a[i]);
rep(i,1,n-1) {
rep(j,1,i) {
int l=a[i],r=a[i+1]+1,ans=-1;
while(l<=r) {
int mid=(l+r)>>1;
if((2*mid+i-j)*(i-j+1)/2-(sum[i]-sum[j-1])<=k)
ans=mid,l=mid+1;
else
r=mid-1;
}
if(ans!=-1)
res=max(res,ans+i-j);
}
}
printf("%lld\n",res);
}
return 0;
}