atcoder#ARC077D. [ARC077F] SS
[ARC077F] SS
配点 : 点
問題文
同じ文字列を つ並べてできる文字列のことを偶文字列と呼ぶことにします。
例えば、 xyzxyz
や aaaaaa
は偶文字列ですが、ababab
や xyzxy
は偶文字列ではありません。
空でない文字列 に対して、 を 「 の後ろに 文字以上の文字を追加してできる偶文字列のうち
最短の文字列」として定義します。
例えば、 abaaba
abaababaab
です。
このような文字列は空でない文字列に対してはちょうど 通りに定まることが証明できます。
アルファベットの小文字からなる偶文字列 が与えられます。 の 文字目から 文字目までに アルファベットの小文字がそれぞれ何回出現するかを求めて下さい。
というのは、 のように、 を 回 で写した文字列のことを指します。
制約
- は小文字のアルファベットのみからなる偶文字列である。
- は整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
個の整数を空白区切りで 行に出力せよ。 番目には、 の 文字目から 文字目までに 番目の アルファベットが何回出現するかを出力せよ。
abaaba
6 10
3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
abaaba
abaababaab
なので、 の最初の 文字を取り出したものも
やはり abaababaab
となっています。よって、 文字目から 文字目は abaab
です。
abaab
には a
が 回、 b
が 回使われていて、 c
から z
までは 回も出てこないので、
出力するべき値は 番目が で、 番目が で、それ以外の 個が となります。
xx
1 1000000000000000000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000000000000000000 0 0
vgxgpuamkvgxgvgxgpuamkvgxg
1 1000000000000000000
87167725689669676 0 0 0 0 0 282080685775825810 0 0 0 87167725689669676 0 87167725689669676 0 0 87167725689669676 0 0 0 0 87167725689669676 141040342887912905 0 141040342887912905 0 0