#C. 沦陷的村民交易所

    传统题 文件IO:villager 1000ms 256MiB

沦陷的村民交易所

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

sstzer 建造了一排有 NN 个村民的交易所(1N31051 \leq N \leq 3\cdot 10^5)。

最初,sstzer并没有注意到有一些村民已经被感染为僵尸村民。每到夜晚,僵尸村民会将他左右两边的村民感染为僵尸村民(如果他的旁边有村民的话)。一旦村民被感染,他就会变成僵尸村民。

经过一些晚上,sstzer 意识到情况已经失控,但他还是想知道有最初至少有多少只僵尸村民。

输入格式

从文件 villager.invillager.in 中读入数据

第一行为一个整数 NN,即村民交易所中村民的总数(包括僵尸村民)。

接下来一行,包含长度为 NN 的由 0011 组成的位串。其中 00 表示一只村民,11 表示一只僵尸村民。

输出格式

输出数据到文件 villager.outvillager.out

输出一个整数,表示最少有多少只村民可能最初被感染了。

样例

5
11111
1
6
011101
4

提示

样例解释 1

假设只有中间的村民最初被感染。那么,村民们将按以下顺序被感染:

  • 00 晚:0010000100(第三只村民一开始被感染)
  • 11 晚:0111001110(第二和第四只村民现在被感染了)
  • 22 晚:1111111111(第一和第五只村民现在被感染了)
  • 33 晚:1111111111(所有的村民都已经被感染了,没有新的村民被感染)
  • ……

经过两个或更多的晚上,村民们的状态即与输入的状态相符。还有许多其他的初始状态和夜晚数量可能导致了输入的状态,例如:

  • 00 晚:1000110001
  • 11 晚:1101111011
  • 22 晚:1111111111

或者:

  • 00 晚:0100101001
  • 11 晚:1111111111

或者:

  • 00 晚:0100001000
  • 11 晚:1110011100
  • 22 晚:1111011110
  • 33 晚:1111111111

所有这些初始状态中至少有一只僵尸村民。

样例解释 2

唯一可能导致这个最终状态的初始状态和夜晚数是:没有经过任何夜晚,输入中的四只僵尸村民都是从最开始就被感染的。

测试点性质

  • 测试点 373-7 满足 N1000N \le 1000
  • 测试点 8128-12 没有额外限制。

24KOI 2024 体验赛 No.03

未参加
状态
已结束
规则
OI
题目
4
开始于
2024-7-7 8:00
结束于
2024-7-7 11:30
持续时间
3.5 小时
主持人
参赛人数
60