CF1675C Detective Task

题目描述

Polycarp 买了一幅昂贵的新画,并决定向他的 $n$ 个朋友展示。他把画挂在自己的房间里。$n$ 个朋友依次一个接一个地进出房间。任意时刻房间里最多只有一个人。换句话说,第一个朋友先进入并离开,然后是第二个朋友,依此类推。 已知在一开始(朋友们还未参观时)房间里挂着画。在最后(第 $n$ 个朋友参观后)发现画已经不见了。但画究竟是在什么时候消失的——并没有相关信息。 Polycarp 逐个询问了他的朋友。他问每个人在进入房间时是否看到画。每个朋友的回答有三种: - 没有(用 0 编码); - 有(用 1 编码); - 不记得了(用 ? 编码)。 除了小偷之外,其他人要么不记得,要么说了实话。小偷可以说任意答案(三种都可以)。 Polycarp 无法确定谁是小偷。他请你根据回答,找出有可能是小偷的人数。

输入格式

第一行为整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 接下来是每个测试用例的描述。 每个测试用例的第一行包含一个字符串 $s$(长度不超过 $2 \cdot 10^5$),表示朋友们的回答,其中 $s_i$ 表示第 $i$ 个朋友的回答。字符串中的每个字符都是 0、1 或 ?。 实际情况符合题目描述的规律。特别地,根据回答,至少有一个人可以被怀疑是小偷。 保证所有测试用例中字符串长度之和不超过 $2 \cdot 10^5$。

输出格式

输出一个正整数(严格大于零),表示根据所给数据,有多少人可能是小偷。

说明/提示

在第一个样例中,答案是 $1$,因为只有 $1$ 个朋友。 第二个样例与第一个类似。 在第三个样例中,嫌疑人是第三和第四个朋友(从 1 开始计数)。可以证明没有其他人可能是小偷。 在第四个样例中,我们完全不知道情况,因此所有人都是嫌疑人。 由 ChatGPT 4.1 翻译