[ABC312Ex] snukesnuke

题意翻译

## 题目翻译 高桥君需要给 $ N $ 个人取一个绰号。 第 $ i $ 个人希望将其绰号设为 $ S_i $。为了避免给多个人取相同的绰号,高橋君决定采用以下步骤为这 $ N $ 个人分别确定绰号: - 对于 $ i=1,\ldots,N $,按以下步骤来确定第 $ i $ 个人的绰号: - 将变量 $ k_i $ 设为 $ 1 $。 - 当“将 $ S_i $ 重复 $ k_i $ 次得到的字符串”已经是某人的绰号时,不断增加 $ k_i $ 的值,直到找到一个没有被使用过的绰号。 - 将“将 $ S_i $ 重复 $ k_i $ 次得到的字符串”设为第 $ i $ 个人的绰号。 请计算出确定了 $ N $ 个人的绰号后的 $ k_1,\ldots,k_N $。

题目描述

[problemUrl]: https://atcoder.jp/contests/abc312/tasks/abc312_h 高橋君は人 $ 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 $ をこの順に空白区切りで出力せよ。

输入输出样例

输入样例 #1

3
snuke
snuke
rng

输出样例 #1

1 2 1

输入样例 #2

4
aa
a
a
aaa

输出样例 #2

1 1 3 2

输入样例 #3

5
x
x
x
x
x

输出样例 #3

1 2 3 4 5

说明

### 制約 - $ N\ \geq\ 1 $ - $ S_i $ は英小文字のみからなる、長さ $ 1 $ 以上の文字列 - $ S_i $ の長さの総和は $ 2\times\ 10^5 $ 以下 ### Sample Explanation 1 \- まず人 $ 1 $ のあだ名を決めます。 - $ k_1=1 $ とします。 - $ S_1 $ を $ k_1 $ 回繰り返した文字列 `snuke` は誰のあだ名でもないので、人 $ 1 $ のあだ名は `snuke` になります。 - 次に人 $ 2 $ のあだ名を決めます。 - $ k_2=1 $ とします。 - $ S_2 $ を $ k_2 $ 回繰り返した文字列 `snuke` はすでに人 $ 1 $ のあだ名なので、$ k_2 $ を $ 1 $ 増やして $ 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 $ となります。 ### Sample Explanation 2 \- 人 $ 1 $ のあだ名は `aa` になります。 - 人 $ 2 $ のあだ名は `a` になります。 - 人 $ 3 $ のあだ名は、`a`, `aa` がすでに他の人のあだ名なので、`aaa` になります。 - 人 $ 4 $ のあだ名は、`aaa` がすでに他の人のあだ名なので、`aaaaaa` になります。