const int N=20000;
int n,a[N+10];
ll sum,ans;
int main(void){
n=read();
for(int i=1;i<=n;i++){
a[i]=read();
sum+=a[i];
}
for(int i=1;i<n;i++){
ans=_max<int>(ans,a[i]+a[i%n+1]);
}
ans=_max<ll>(ans,(sum+n/2-1)/(n/2));
write(ans);
ret 0;
}
这是我的 AC 代码,但是明显可以 hack。
题解太多不想测了。
第一组:
输入 1 5,我的程序 RE 了。显然输出应该为 5。
第二组:
输入 4 4 0 0 4,我的程序输出 4,显然答案应该是 8。
接下来说一下这些数据为什么能卡。
第一组:我的程序没有特判 n=1,所以最后计算结果的时候 ⌊2n⌋ 算出了 0,再一除,导致了 RE。
第二组:这份程序没有从 1 枚举到 n,导致了边界情况没有判断,所以 WA 了。