#668. 锁门
锁门
题目描述
有 个房间排成一行,按顺序编号为 。
房间之间有 扇门,编号为 。门 位于房间 与房间 之间。
对于每扇门,给出一个值 表示其上锁状态:当 时门 处于未上锁状态;当 时门 处于已上锁状态。
高桥先生最初位于房间 ,且只有当门 为未上锁时,才可以在房间 与 之间移动。此外,当且仅当他位于房间 或房间 时,他才可以对门 执行一次“切换”操作(若当前为未上锁,则切换为已上锁;若当前为已上锁,则切换为未上锁)。
求使 所有门均为已上锁状态 所需的最小切换操作次数。
输入格式
输入共两行
- 第一行两个正整数 , ,由空格隔开;
- 第二行 个由空格隔开的正整数,第 个正整数表示 。
输出格式
输出一个整数,表示使所有门都上锁所需的最少切换操作次数。
样例输入 1
6 3
1 0 0 1 0 0
样例输出 1
6
样例输入 2
2 1
0 0
样例输出 2
2
样例输入 3
8 2
0 1 0 0 1 0 1 1
样例输出 3
8
说明
样例 1 解释
高桥先生 可以按如下方式用 次切换操作使所有门上锁:
- 向左移动到房间 ;
- 对门 执行一次切换使其上锁;
- 移动到房间 ;
- 对门 执行一次切换(将门 解锁);
- 对门 执行一次切换使其上锁;
- 移动到房间 ;
- 对门 再次切换使其上锁;
- 移动到房间 ;
- 对门 执行一次切换使其上锁;
- 对门 执行一次切换使其上锁。
数据范围
- ;
- ;
- 对所有 成立;
- 所有输入值均为整数。