P14881 [ICPC 2019 Yokohama R] Ambiguous Encoding

题目描述

你的一位朋友正在设计一个字符集到一组变长比特序列的编码方案。你被要求检查该编码是否具有歧义。在一个编码方案中,每个字符被赋予一个可能长度不同的唯一比特序列作为其编码。一个字符序列被编码为一个比特序列,该序列是字符串中字符的编码按其出现顺序拼接而成。如果一个编码方案存在两个不同的字符序列被编码为完全相同的比特序列,则称该编码方案具有歧义。这样的比特序列被称为“歧义二进制序列”。 例如,将字符 “A”、“B” 和 “C” 分别编码为 0、01 和 10 是具有歧义的。该方案将两个不同的字符串 “AC” 和 “BA” 编码为相同的比特序列 010。

输入格式

输入包含单个测试用例,格式如下。 $$n$$ $$w_1$$ $$\vdots$$ $$w_n$$ 其中,$n$ 是要编码的字符集大小($1 \le n \le 1000$)。接下来的 $n$ 行中,第 $i$ 行的 $w_i$ 给出了第 $i$ 个字符的比特序列,是一个非空的、长度不超过 $16$ 的二进制数字序列(由 0 或 1 组成)。注意,不同的字符被赋予不同的编码,即对于 $i \ne j$,有 $w_i \ne w_j$。

输出格式

如果给定的编码具有歧义,则在一行中输出最短歧义二进制序列的比特数。否则,输出 $0$。