注意,下方有疑似AC代码
#include<bits/stdc++.h>
typedef long long ll;
typedef long double ld;
using namespace std;
const int N=2e4+114;
ll n,ans,he;
ll a[N];
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
he+=a[i];
}
for(int i=1;i<n;i++){
ans=max(ans,a[i]+a[i+1]);
}
ans=max(ans,a[n]+a[1]);
```cpp
ans=max(ans,he/(n/2)+1);
//平均,取n/2以解决n%2==1情况下a[n],a[1]矛盾问题
cout<<ans;
return 0;
}
请问以上代码有正确性吗?
ans=max(ans,he/(n/2)+1);
这句语句开始没有“+1”;加上后“3 1 1 1”样例不过
然后我发现WA的点都是有一位差1
就写了个+1,遂过
求dalao讲解