AT_dwacon2018_prelims_b 2525文字列分解

题目描述

dwango 公司的 Niwango 君正在开发一款名为 2525SNS 的新型社交网络服务。2525SNS 是一款只允许发布 2525 字符串的创新型 SNS。 在本题中,所有能表示为 `25` 至少一次重复拼接而成的字符串称为 2525 字符串。例如,`25`、`2525`、`2525252525252525` 等均为 2525 字符串,而空字符串、`2255`、`2552`、`252` 等都不是 2525 字符串。 首先,Niwango 君想要生成一些 2525 字符串。他手中有一个字符串 $s$,他希望将其拆分成 $1$ 个或更多的子串,使得每个被拆分出来的子串均为 2525 字符串。 请你回答,至少需要将 $s$ 拆分成多少个子串,才能满足要求?如果无论如何拆分都无法满足条件,请输出 $-1$。有关拆分规则详见样例 $1$ 的说明。

输入格式

输入通过标准输入给出,格式如下: > $s$

输出格式

输出答案。

说明/提示

## 限制条件 - $1\leq |s| \leq 2{,}525$ - $s$ 只由 `2` 和 `5` 组成 ## 样例解释 1 - 如果将 `225525` 拆分为 $1$ 个子串,则它不是 2525 字符串,因此不满足条件。 - 其他拆分方法,例如将其拆分为 $($`25`, `2525`$)$ 或 $($`25`, `25`, `25`$)$。下面分别给出符合要求和不符合要求的拆分示例。需要注意,每个子串中的相对出现顺序必须与 $s$ 中保持一致。 - 将 `225525` 拆分为 $2$ 个子串 $($`25`, `2525`$)$,可以使每个子串均为 2525 字符串,如下所示。 ![062c9a95edb82917811ef52962f98a3e.png](https://img.atcoder.jp/dwacon2018-prelims/062c9a95edb82917811ef52962f98a3e.png) ## 样例解释 2 - 虽然有 $2$ 种拆分方法,但无论如何拆分都无法使所有子串均为 2525 字符串。 - 注意到,将 `5` 和 `2` 分拆后,即使交换顺序也无法组成 `25`。 由 ChatGPT 5 翻译