#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
typedef long long ll;
inline int read() {
int res=0,f=1;char ch;
while(ch=getchar(),ch<'0'||ch>'9') if(ch=='-') f=-1;
while(ch>='0'&&ch<='9') res=res*10+ch-'0',ch=getchar();
return res*f;
}
const int N=1e3+5;
int n;
ll s[N],a[N];
int main() {
n=read();ll ans=0;
for(int i=1 ; i<=n ; ++i) a[i]=read(); //读入括号序列
for(int i=1 ; i<=n ; ++i) {
if(i&1) { //考察左括号
for(int j=1 ; j<=i ; j+=2)
if(s[j]>=0)
s[j]+=a[i];
}
else {
ll t=0;
for(int j=i-1 ; j>0 ; j-=2)
if(s[j]>=0)
ans+=max(0ll,min(a[i],s[j])-t+(j!=i-1)),t=max(t,s[j]);
for(int j=1 ; j<i ; j+=2)
s[j]-=a[i];
}
}
printf("%lld\n",ans);
return 0;
}
C - Compressed Bracket Sequence
于 2021-08-30 10:48:30 首次发布