萌新求助
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod(12345678910);
ll n;
stack<ll>s;
int a[100050];
int main()
{
scanf("%lld",&n);
for(int i(1);i<=n;++i)
{
long long x;
scanf("%lld",&x);
if(x==0)
s.push(i);
else
{
ll t(s.top());
s.pop();
if(t+1!=i)
{
ll sum(0);
for(int j(t+1);j<i;++j)
sum+=a[j],a[j]=0;
a[i]=sum*2%mod;
}
else
a[i]=1;
}
}
ll res(0);
for(int i(1);i<=n;++i)
res+=a[i],res%=mod;
printf("%lld",res%mod);
puts("");
return 0;
}
为什么只得了40分?