传送门 我的代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 5000005;
int n;
int m[N];
int s[N];
bool check(){
for(int i = 1;i < n;i++){
if(s[i] > s[i+1]) {
return false;
}
}
return true;
}
int main(){
cin>>n;
for(int i = 1;i <= n;i++){
cin>>m[i];
}
int ans = 0;
for(int i = 0;i <= m[1] * 2;i++){
memset(s,0,sizeof(s));
s[1] = i;
for(int j = 2;j <= n + 1;j++){
s[j] = m[j-1] * 2 - s[j-1];
}
if(check()){
ans++;
}
}
for(int i = -1;i >= m[1] * -2;i--){
memset(s,0,sizeof(s));
s[1] = i;
for(int j = 2;j <= n + 1;j++){
s[j] = m[j-1] * 2 - s[j-1];
}
if(check()){
ans++;
}
else{
break;
}
}
cout<<ans;
}
暴力甚至有WA,求大佬改代码%%
