atcoder#ABC135F. [ABC135F] Strings of Eternity
[ABC135F] Strings of Eternity
配点 : 点
問題文
英小文字からなる二つの文字列 が与えられます。次の条件を満たす非負整数 の個数が有限であるか判定し、有限である場合はそのような の最大値を求めてください。
- ある非負整数 が存在し、 を 個連結して得られる文字列は、 を 個連結して得られる文字列の部分文字列である。
注記
- 文字列 が文字列 の部分文字列であるとは、ある整数 が存在して任意の整数 に対して であることです。
- 任意の文字列に対し、それを 個連結して得られる文字列は空文字列であるとします。また、上記の定義より、空文字列は任意の文字列の部分文字列です。したがって、任意の二つの文字列 に対して は問題文中の条件を満たします。
制約
- は英小文字からなる。
入力
入力は以下の形式で標準入力から与えられる。
出力
条件を満たす非負整数 の個数が有限である場合はそのような の最大値を、無限である場合は -1
を出力せよ。
abcabab
ab
3
を 個連結して得られる文字列 ababab
は、 を 個連結して得られる文字列 abcabababcabab
の部分文字列であるため、 は条件を満たします。
一方で、 を 個連結して得られる文字列 abababab
は、 を何個連結しても部分文字列として現れないため、 は条件を満たしません。
同様に、 以上の任意の整数も条件を満たしません。よって条件を満たす非負整数 の個数は有限で、その最大値は です。
aa
aaaaaaa
-1
任意の非負整数 に対し、 を 個連結して得られる文字列は、 を 個連結して得られる文字列の部分文字列です。したがって条件を満たす非負整数 は無限に存在します。
aba
baaab
0
注記で述べたように、 は必ず条件を満たします。