CF387C George and Number
题目描述
George 是一只猫,他非常喜欢玩耍。他最喜欢用一个由正整数组成的数组 $b$ 来玩。在游戏过程中,George 会对数组进行一些特殊操作。我们记 George 当前的数组为 $b_{1},b_{2},...,b_{|b|}$(其中 $|b|$ 表示当前数组的长度)。一次操作由以下几个步骤组成:
- 选择两个不同的下标 $i$ 和 $j$($1 \leq i, j \leq |b|$,且 $i \neq j$),满足 $b_{i} \geq b_{j}$。
- 得到数 $v = concat(b_{i}, b_{j})$,其中 $concat(x, y)$ 表示将 $y$ 的十进制表示连接到 $x$ 的末尾所得的数。例如,$concat(500, 10) = 50010$,$concat(2, 2) = 22$。
- 将数 $v$ 添加到数组末尾,数组长度增加 $1$。
- 从数组中移除下标为 $i$ 和 $j$ 的元素,数组长度减少 $2$,剩余元素重新编号为 $1$ 到当前长度。
George 这样玩了很久,把数组 $b$ 变成了只包含一个数字 $p$ 的数组。现在 George 很想知道:数组 $b$ 最初最多可能包含多少个元素?请你帮帮他。注意,最初的数组只能包含正整数。
输入格式
输入包含一行,一个正整数 $p$($1 \leq p < 10^{100000}$)。保证 $p$ 不包含前导零。
输出格式
输出一个整数,表示最初数组 $b$ 可能包含的最大元素数量。
说明/提示
考虑以下测试用例:
- 最初数组 $b$ 可以是 ${5,9,5,5}$。一次可能的操作序列是:${5,9,5,5} \to {5,5,95} \to {95,55} \to {9555}$。
- 最初数组 $b$ 可以是 ${1000000000,5}$。注意数组 $b$ 不能包含零。
- 最初数组 $b$ 可以是 ${800,10,1}$。
- 最初数组 $b$ 也可以是 ${45}$。不能是 ${4,5}$,因为 George 只能通过一次操作得到数组 ${54}$。
注意,数值可能非常大。
由 ChatGPT 5 翻译