题目描述
给定一个长度为 n(1≤n≤105) 的数列 a1,a2,…,an(0≤ai≤1)。
该数列中的每个元素的数值均为 0 或 1。
现在,你需要将这个数列划分为若干个连续子序列,且满足如下条件:
每一个连续子序列中均包含恰好一个数值为 1 的元素。
求:存在多少个不同的划分方案?
由于方案数可能很多,所以你只需要输出总的方案数模 998244353 的结果即可。
输入格式
第一行,一个整数 n(1≤n≤105)。
第二行,n 个整数 a1,a2,…,an(0≤ai≤1)。
数据保证数列 a 中至少存在一个元素的数值为 1。
输出格式
输出一个整数,表示满足条件的方案数模 998244353 的结果。
3
0 1 0
1
5
1 0 1 0 1
4
说明/提示
样例解释
样例1:只有 1 种方案,即数列 a 整理作为一个连续子序列。
样例2:有 4 中不同的划分方案,如下:
10|10|1
1|010|1
10|1|01
1|01|01
数据规模与约定
- 对于 20% 的数据,n≤10
- 对于 50% 的数据,n≤1000
- 对于 100% 的数据,1≤n≤105,0≤ai≤1,且数列中至少不好一个数值为 1 的元素