AT_arc141_f [ARC141F] Well-defined Abbreviation

题目描述

给定 $N$ 个仅由 `A`、`B`、`C`、`D` 组成的字符串 $S_i\ (1\leq i\leq N)$。 对于仅由 `A`、`B`、`C`、`D` 组成的字符串 $T$,定义如下操作: - 重复以下操作,直到没有任何 $S_i$ 是 $T$ 的子串为止: - 任选一个 $S_i$,以及 $T$ 中包含 $S_i$ 的一个位置,将该位置的 $S_i$ 从 $T$ 中删除,并将前后部分连接起来。 子串的定义:子串是指字符串中连续的一段。例如,`A`、`AB`、`BC` 都是 `ABC` 的子串,但 `BA` 和 `AC` 不是 `ABC` 的子串。 如果存在某个 $T$,使得经过上述操作后可以得到多个不同的结果字符串,则称 $T$ 为“坏字符串”。 请判断是否存在“坏字符串”。

输入格式

输入通过标准输入给出,格式如下: > $N$ $S_1$ $S_2$ $\vdots$ $S_N$

输出格式

如果存在“坏字符串”,输出 `Yes`。 如果不存在,输出 `No`。

说明/提示

### 限制条件 - $1\leq N\leq 10^6$ - $1\leq |S_i|\leq 2\times 10^6$ - $|S_1|+|S_2|+\dots+|S_N|\leq 2\times 10^6$ - 若 $i\neq j$,则 $S_i\neq S_j$ - $S_i$ 仅由 `A`、`B`、`C`、`D` 组成 ### 样例解释 1 对于 $T$,操作后的结果字符串只有将 `A`、`B`、`C` 全部删除后的字符串。 ### 样例解释 2 例如,当 $T=$`ABABA` 时,经过操作后可以得到 `AB` 和 `BA` 两种不同的结果,因此 $T$ 是“坏字符串”。 由 ChatGPT 4.1 翻译