#P1130. 环形灯带

    ID: 142 传统题 1000ms 256MiB 尝试: 0 已通过: 0难度: 普及 ← 上一题 下一题 → 随机一题 上传者: 标签 贪心 滑动窗口 双指针
显示设置

环形灯带

题目背景

巡检走廊是一条首尾相接的环形通道,通道两侧的机位上装着状态灯。值班员阿绫每晚巡一遍,顺手把灯拨弄得整齐些。

题目描述

环形通道上有 nn 个机位,按顺时针依次编号 00 到 n−1n-1。每个机位上的状态灯要么亮着,记作 1;要么熄灭,记作 0。

一次操作:任选两个机位,把这两个机位上灯的状态互换(亮的换成灭的,灭的换成亮的)。

阿绫希望最后所有亮着的灯占据环形上连续的一段机位(首尾相接也算连续)。请计算达到这个目标所需的最少操作次数。如果原本就满足要求(例如灯全灭或全亮),答案记作 00。

输入格式

第一行一个整数 nn。

第二行一个长度为 nn 的字符串,仅由 0 与 1 组成,依次给出 00 号到 n−1n-1 号机位上灯的状态,字符之间没有空格。

输出格式

一行一个整数,表示最少操作次数。

输入输出样例 #1

输入 #1

8
10010010

输出 #1

1

说明

亮着的灯分别位于 00、33、66 号机位。把 33 号机位与 77 号机位上的灯互换后,亮灯落在 66、77、00 号机位,恰好是环上连续的三个机位。

输入输出样例 #2

输入 #2

5
00000

输出 #2

0

数据范围与约定

  • 对于 30%30\% 的数据,n≤20n \le 20。
  • 对于另外 30%30\% 的数据,亮着的灯的数量不超过 22。
  • 对于 100%100\% 的数据,1≤n≤1061 \le n \le 10^{6}。