E Two Dragon Ball
题号:NC213400
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

今天早上,房老师在青岛工学院件捡到一排二龙珠。二龙珠以特定的顺序排列,并且互相因为魔力吸引,不能被外力拆开。
房老师可以选择其中两颗相邻的不同的龙珠,可以用来召唤神龙实现一个愿望。实现完之后,那两颗龙珠就会飞走。并且原来位置上左右两边的龙珠会自动相互吸引到一起。之后,房老师可以选择继续许愿。
房老师想知道,如果她以最优的决策去选择每次要使用的龙珠,那她最多可以实现多少个愿望。

输入描述:

输入在一行中给出一个长度不超过100000的字符串,字符串由字符'1','2'构成,代表了一星龙珠与二星龙珠和其顺序。

输出描述:

输出一个整数表示答案。
示例1

输入

复制
1122

输出

复制
2

说明

通过执行以下操作,可以实现2个愿望:
将第二个与第三颗龙珠拿来许愿,之后第一颗与第四颗龙珠变会连在一起。然后再将它们再次拿来许愿,一共可以实现2个愿望。
示例2

输入

复制
11211212221211

输出

复制
6
示例3

输入

复制
1

输出

复制
0