SP21284 EMTY3 - Can You Make It Empty 3

题目描述

有一个叫作 `CanEmpty()` 的函数,它以字符串P作为参数,如果可以通过一系列操作使P为空则返回 TRUE,否则返回 FALSE。 字符串 $P$ 只由0和1组成。`CanEmpty()` 函数的伪代码实现如下。 ```cpp bool CanEmpty(String P) { while (P含有至少一个为“100”的字串) { 删除P中任意一个为“100”的字串 } if (P为空) return TRUE; else return FALSE; } ``` 现在你得到了一个由0和1组成的字符串 $S$,你需要求 $S$ 中最长的、用 `CanEmpty` 算法可以使其为空的子串的长度。 举个例子,设 S=101**110000**0**100** 当前情况 $S$ 只有两个子字符串(以粗体展示)可以用 `CanEmpty` 算法使其为空。 第一个子字符串在 `CanEmpty` 函数中有可以删除的字串 1**100**00 -> **100** -> 空串 第二个子字符串在 `CanEmpty` 函数中也有可以删除的字串 **100** -> 空串 第一个子串的长度是6,第二个子串的长度是3。所以答案是6。

输入格式

给定整数 $T(T≤100)$,表示有 $T$ 组数据 每组数据包含一个字符串 $s$,字符串的长度不超过200000。

输出格式

对于每组数据,输出其编号和最长字串长度 ### 输入输出样例 #### 输入 ``` 2 1011100000100 111011 ``` #### 输出 ``` Case 1: 6 Case 2: 0 ```