AT_arc201_c [ARC201C] Prefix Covering

题目描述

由字符 `A` 和字符 `B` 组成的字符串被称作 AB 字符串。 一个 AB 字符串集 $X$ 是好的,当且仅当: - 对于任意长度为 $10^{100}$ 的 AB 字符串,$X$ 中有至少一个串是它的前缀。 给你 $N$ 个不同的 AB 字符串 $S_1,S_2,\cdots,S_N$,对于每个 $k=1,2,\cdots,N$,求 $\{S_1,S_2,\cdots,S_k\}$ 有多少个子集是好的,对 $998244353$ 取模。

输入格式

第一行一个整数 $N(1\le N\le 2\times 10^5)$。\ 接下来 $N$ 行,每行一个由 `A` 和 `B` 组成的字符串 $S_i$。 保证 $\sum_{i=1}^n \vert S_i\vert\le 5\times 10^5$。

输出格式

输出 $N$ 行,第 $i$ 行输出一个整数表示 $k=i$ 时的答案。

说明/提示

**样例 1 解释** - $k=1$:没有子集是好的。 - $k=2$:有一个好的子集:$\{S_1,S_2\}$ - $k=3$:有两个好的子集:$\{S_1,S_2\},\{S_1,S_2,S_3\}$ - $k=4$:有五个好的子集:$\{S_1,S_2\},\{S_1,S_2,S_3\},\{S_1,S_2,S_4\},\{S_1,S_3,S_4\},\{S_1,S_2,S_3,S_4\}$