4869高校かるた部では、参加者から集めた文字列を使ってかるた大会を行うことにしました。
かるた大会で絶対に勝ちたいyuki君は、集めた文字列の中でどの文字列が読まれたかをいち早く つに確定させるべく、各文字列の決まり字の長さを調べておくことにしました。
ここである文字列集合において、要素である各文字列の決まり字の長さは次のように定義されます。
文字列の集合を 、文字列 の長さを とする。
また、 の先頭から 文字を取り出した文字列を、 の長さ の接頭辞と呼ぶ。
文字列 の決まり字の長さ は、次の条件を満たす最小の整数 とする。
はじめ、文字列の集合 は空です。
これから 個の文字列 が集合 に順番に追加されます。
番目のクエリでは、文字列 を新たに追加し、その時点で集合 に含まれるすべての文字列の決まり字の長さの総和 を出力してください。
0 からなる文字列である。0 である。入力は以下の形式で標準入力から与えられる。
行出力してください。 行目には、クエリ の答えを出力してください。
4 apple0 ape0 banana0 app0
1 6 7 12
クエリ では、集合 に apple0 しか存在しないため、apple0 の決まり字の長さは です。
クエリ で ape0 が追加されると、apple0 と ape0 は先頭の ap が一致します。そのため、どちらも決まり字の長さは です。
このように既に追加されている文字列の決まり字の長さが増減しうることに注意してください。
クエリ では、集合 に接頭辞が b の文字列は banana のみです。そのため、 banana の決まり字の長さは です。また、apple0 と ape0 の決まり字の長さは増減しません。
3 cat0 dog0 fish0
1 2 3
どの文字列も先頭文字が異なります。
そのため、すべてのクエリにおいて、すべての文字列の決まり字の長さは です。
5 a0 aa0 aaa0 aaaa0 aaaaa0
1 4 8 13 19