B - 2525文字列分解 Editorial

Time Limit: 2.525 sec / Memory Limit: 246 MB

配点 : 300300

問題文

dwango社員のニワンゴくんは2525SNSという新しいSNSを開発しています。 2525SNSは2525文字列のみ投稿可能な画期的なSNSです。

この問題において、2511 回以上の繰り返しで表される文字列を2525文字列と呼びます。 例えば、25,2525,2525252525252525 などは2525文字列ですが、空文字列や 2255,2552,252 などは2525文字列ではありません。

まず、ニワンゴくんは2525文字列をいくつか作ることにしました。 ニワンゴくんは手元にあった文字列 ss11 つ以上の部分列に分解し、分解された部分列それぞれが2525文字列となるようにしたいです。

最小でいくつの部分列に分解すればこれを達成可能ですか?どのように分解しても達成不可能な場合は -1 を出力してください。分解についてはサンプル 11 の説明も参照してください。

制約

  • 1s2,5251 \leq |s| \leq 2{,}525
  • ss25 のみからなる

入力

入力は以下の形式で標準入力から与えられる。

ss

出力

答えを出力せよ。


入力例 1Copy

Copy
225525

出力例 1Copy

Copy
2
  • 11 つの部分列に分解した場合、225525 は2525文字列ではないため条件を満たしません。
  • その他の分解としては例えば ((25,2525)) となるような分解と ((25,25,25)) となるような分解が考えられます。それぞれについて正しい分解の例とそうでない例を示します。各部分列内において、ss における相対的な出現順序が守られるように分解する必要があることに注意してください。
  • ((25,2525)) となるように 22 つの部分列に分解することで、それぞれの部分列が2525文字列となるように分解できます。
062c9a95edb82917811ef52962f98a3e.png

入力例 2Copy

Copy
52

出力例 2Copy

Copy
-1
  • 分解方法は 22 通りありますが、それぞれの部分列が2525文字列となるように分解することはできません。
  • 52 に分解したのち、それぞれの順序を入れ替えて 25 を作ることは不可能なことに注意してください。

入力例 3Copy

Copy
2255252252222555552522255255

出力例 3Copy

Copy
5

入力例 4Copy

Copy
25252

出力例 4Copy

Copy
-1


2025-04-04 (Fri)
22:18:38 +00:00