#CF1815E. Bosco 与粒子

Bosco 与粒子

Bosco 与粒子

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

有一条从位置 00 到位置 n+1n+1 的直线,在位置 1,2,…,n1,2,\ldots,n 各有一个振荡器。 粒子初始位于 00,朝下运动,速度为每秒一个单位。

第 ii 个振荡器由循环二进制串 sis_i 描述,初态为首字符。粒子到达该位置时:若 当前字符为 1,粒子反向;若为 0,方向不变。随后该振荡器移动到下一个字符, 串末之后回到串首。粒子在 t>0t>0 到达 00 或 n+1n+1 时也会反向。

求最小正整数 cc,使任意 t≥0t\ge0 时粒子在 tt 与 t+ct+c 的位置相同。可以证明 cc 总存在。输出 c mod 998244353c\bmod 998244353。

输入格式

第一行一个整数 nn。接下来 nn 行,第 ii 行是仅含 0、1 的非空字符串 sis_i。

输出格式

输出循环节长度对 998244353998244353 取模的结果。

样例输入 1

1
00

样例输出 1

4

样例输入 2

2
01
010

样例输出 2

16

样例输入 3

4
0101
000
1
01

样例输出 3

12

样例输入 4

4
01010
0001
11
0001

样例输出 4

120

数据范围

对于所有数据,1≤n≤1061\le n\le10^6,1≤∣si∣≤1061\le |s_i|\le10^6,且 ∑∣si∣≤106\sum |s_i|\le10^6。

子任务编号 分值 特殊限制
1 30 n≤6n\le6 且 ∑∣si∣≤16\sum \lvert s_i\rvert\le16
2 n≤500n\le500 且 ∑∣si∣≤500\sum \lvert s_i\rvert\le500
3 40 无特殊限制