#P13813. toyota2023spring_final_e East-Northeast

    ID: 13014 传统题 8000ms 1024MiB 尝试: 3 已通过: 1 难度: 8 上传者: 标签>CF2400生成函数多项式组合数学数学FFT

toyota2023spring_final_e East-Northeast

题目描述

给定一个由 0011 组成的长度为 NN 的整数序列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N)

现在,二维平面上有一个棋子位于坐标 (0,0)(0,0)。你可以任意次数地重复以下操作:

  • 选择整数 x,yx, y1x,yN1 \leq x, y \leq N),将棋子的 XX 坐标和 YY 坐标分别增加 xxyy。但必须满足以下两个条件:
    • Ax=1A_x=1
    • 操作后棋子的坐标为 (p,q)(p,q) 时,需满足 qpq \leq p

请你求出,使得棋子最终能够到达坐标 (N,N)(N,N) 的操作方法有多少种。答案对 998244353998244353 取模。

输入格式

输入以如下格式从标准输入读入:

NN A1A_1 A2A_2 \cdots ANA_N

输出格式

请输出答案。

输入输出样例 #1

输入 #1

2
1 1

输出 #1

2

输入输出样例 #2

输入 #2

1
0

输出 #2

0

输入输出样例 #3

输入 #3

4
1 1 0 1

输出 #3

10

输入输出样例 #4

输入 #4

25
1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0

输出 #4

934946952

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • Ai{0,1}A_i \in \{0,1\}

样例解释 1

棋子的移动方式有以下 22 种:

  • (0,0)(1,1)(2,2)(0,0) \rightarrow (1,1) \rightarrow (2,2)
  • (0,0)(2,2)(0,0) \rightarrow (2,2)