代码如下
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,mod=12345678910,ans,a[100005],b;
stack< ll >st,sum,check;
int main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
for(int i=1;i<=n;i++){
if(a[i]==0) check.push(a[i]);
else{
if(check.size()>0) check.pop();
else{
printf("0");
return 0;
}
}
}
for(int i=1;i<=n;i++){
if(a[i]==0){
st.push(a[i]);
sum.push(0);
}
else{
st.pop();
if(sum.top()==0){
sum.pop();
sum.push(1);
}
else{
b=0;
while(sum.top()!=0){
b+=sum.top();
sum.pop();
}
sum.pop();
sum.push(2*b%mod);
}
if(st.size()==0){
ans=(ans+sum.top())%mod;
sum.pop();
}
}
}
printf("%lld",ans);
return 0;
}