AT_abc312_h [ABC312Ex] snukesnuke
题目描述
高桥君需要为编号为 $1,\ldots,N$ 的 $N$ 个人决定昵称。
第 $i$ 个人希望自己的昵称是 $S_i$。为了避免给多人取相同的昵称,高桥君按照以下步骤为 $N$ 个人决定昵称:
- 按照 $i=1,\ldots,N$ 的顺序,依次为第 $i$ 个人决定昵称:
- 令变量 $k_i=1$。
- 只要“将 $S_i$ 重复 $k_i$ 次得到的字符串”已经被某个人作为昵称使用,就将 $k_i$ 增加 $1$ 并继续判断。
- 将“$S_i$ 重复 $k_i$ 次得到的字符串”作为第 $i$ 个人的昵称。
请你求出为 $N$ 个人决定昵称后得到的 $k_1,\ldots,k_N$。
输入格式
输入按以下格式从标准输入读入。
> $N$
> $S_1$
> $\vdots$
> $S_N$
输出格式
请按照题目中的操作,为 $N$ 个人决定昵称后,按顺序用空格分隔输出 $k_1,\ldots,k_N$。
说明/提示
## 限制条件
- $N\geq 1$
- $S_i$ 仅由小写英文字母组成,且长度不少于 $1$
- 所有 $S_i$ 的长度之和不超过 $2\times 10^5$
## 样例解释 1
- 首先为第 $1$ 个人决定昵称。
- 令 $k_1=1$。
- $S_1$ 重复 $k_1$ 次得到的字符串 `snuke` 还没有被任何人使用,所以第 $1$ 个人的昵称为 `snuke`。
- 接着为第 $2$ 个人决定昵称。
- 令 $k_2=1$。
- $S_2$ 重复 $k_2$ 次得到的字符串 `snuke` 已经被第 $1$ 个人使用,所以将 $k_2$ 增加到 $2$。
- $S_2$ 重复 $k_2$ 次得到的字符串 `snukesnuke` 还没有被任何人使用,所以第 $2$ 个人的昵称为 `snukesnuke`。
- 最后为第 $3$ 个人决定昵称。
- 令 $k_3=1$。
- $S_3$ 重复 $k_3$ 次得到的字符串 `rng` 还没有被任何人使用,所以第 $3$ 个人的昵称为 `rng`。
因此,$k_1,k_2,k_3$ 分别为 $1,2,1$。
## 样例解释 2
- 第 $1$ 个人的昵称为 `aa`。
- 第 $2$ 个人的昵称为 `a`。
- 第 $3$ 个人的昵称,`a`、`aa` 已经被其他人使用,所以为 `aaa`。
- 第 $4$ 个人的昵称,`aaa` 已经被其他人使用,所以为 `aaaaaa`。
由 ChatGPT 4.1 翻译