atcoder#ABC272F. [ABC272F] Two Strings
[ABC272F] Two Strings
配点 : 点
問題文
長さ の英小文字からなる文字列 が与えられます。
文字列 と整数 に対し、 を に対して以下の操作を 回行い得られる文字列とします。
- の先頭の文字を削除し、同じ文字を の末尾に挿入する。
を満たす正整数の組 のうち、辞書順で が より小さいか同じであるものの個数を求めてください。
辞書順とは?
辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、英小文字からなる相異なる文字列 の大小を判定するアルゴリズムを以下に説明します。
以下では「 の 文字目の文字」を のように表します。また、 が より辞書順で小さい場合は 、大きい場合は と表します。
- のうち長さが大きくない方の文字列の長さを とします。 に対して と が一致するか調べます。
- である が存在する場合、そのような のうち最小のものを とします。そして、 と を比較して、 が よりアルファベット順で小さい場合は 、そうでない場合は と決定して、アルゴリズムを終了します。
- である が存在しない場合、 と の長さを比較して、 が より短い場合は 、長い場合は と決定して、アルゴリズムを終了します。
制約
- は英小文字からなる長さ の文字列
- は整数
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
3
adb
cab
4
条件を満たす の組は の 個があります。
は、dba
bca
であるため条件を満たしません。
10
wsiuhwijsl
pwqoketvun
56