传送门
首先按照对称轴对折,两边的点一定重合。
然后暴力对折对称轴,区间大小就是答案。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#define N 1000005
using namespace std;
int a[5000005],n,l,r,L,R;
inline int read(){
int k=0;
char ch=getchar();
for (;ch<'0'||ch>'9';ch=getchar());
for (;ch>='0'&&ch<='9';ch=getchar()) k=k*10+ch-48;
return k;
}
int main(){
n=read();
l=r=0;
L=-2100000000;
R=-L;
for (int i=1;i<=n;i++){
a[i]=read();
if (i%2){
r=l+a[i]-a[i-1];
R=min(R,r);
}
else{
l=r+a[i-1]-a[i];
L=max(L,l);
}
}
printf("%d",max(0,R-L+1));
}