AT_ijpc2015_c しりとり木

题目描述

给定 $m$ 个小写英文字母组成的字符串。 判断是否存在一棵包含 $m$ 个节点的有根树,满足以下条件: - 除叶子节点外的所有节点都有两个子节点。 - 如果节点 $i$ 是节点 $c$ 的父节点,那么第 $i$ 个字符串的最后一个字符与第 $c$ 个字符串的第一个字符相同。 如果这样的树存在,请构造出这棵树。 13:35 修正了题目中的错误 **由于 B 题的测试用例存在错误,非常抱歉,我们将在 16:30 之后提供新的测试用例。(16:10)**

输入格式

输入通过标准输入提供,格式如下: > $N$ $s_1$ ... $s_N$ - 第一行是一个整数 $N (1 \leq N \leq 10^4)$,表示字符串的数量。 - 接下来 $N$ 行,每行一个字符串,第 $i+1\ (1 \leq i \leq N)$ 行给出第 $i$ 个字符串。 - 每个字符串长度为 1 到 10 个字符。

输出格式

结果输出到标准输出,末尾需换行。 如果没有满足条件的树,输出 `NO`。 如果存在满足条件的树,输出 $N+1$ 行。第一行输出 `YES`,接着的 $N$ 行中,第 $i+1\ (1 \leq i \leq N)$ 行输出第 $i$ 个字符串的父节点编号。如果第 $i$ 个字符串是根节点,则输出 0。

说明/提示

### 注意事项 本题没有部分得分。 **考虑到对比赛的影响,原测试用例共计 99 分,新增测试用例共计 1 分。(16:32)** ### 样例说明 #### 输入样例 3 ``` 1 i ``` #### 输出样例 3 ``` YES 0 ``` **本翻译由 AI 自动生成**