#LQB0025. 移除棋子
移除棋子
题目描述
有 颗棋子排成一排,每颗棋子为白色(用 表示)或黑色(用 表示)。每次操作可以从最左端或最右端移除一颗棋子。最终要求剩余棋子中白色棋子的数量恰好为 。
给定 以及棋子颜色序列,请计算最少需要移除多少颗棋子才能满足要求;若无法实现,输出 。
例 1:n = 8,m = 2,8 颗棋子的颜色分别是 0 1 0 1 1 0 0 1,要使剩余棋子中白色棋子的数量为2,最少需要移除 3 颗棋子,移除方案如下:
第一次,移除最右端的棋子,移除后剩余棋子的颜色分别是 0 1 0 1 1 0 0;
第二次,移除最左端的棋子,移除后剩余棋子的颜色分别是 1 0 1 1 0 0;
第三次,移除最左端的棋子,移除后剩余棋子的颜色分别是 0 1 1 0 0;
此时,剩余棋子中白色棋子的数量为 2。
例 2:n = 5,m = 3,5 颗棋子的颜色分别是 1 0 0 1 0,无论如何移除棋子,都不能使剩余棋子中白色棋子的数量为 3。
输入格式
第一行输入两个整数 (以空格分隔),分别表示初始棋子数量与目标白色棋子数量。
第二行输入 个整数(仅为 或 ,以空格分隔),表示从左到右每颗棋子的颜色。
输出格式
输出一个整数,表示最少要移除的棋子数量;若无法使剩余白色棋子数量为 ,输出 。
样例输入输出
样例输入1
8 2
0 1 0 1 1 0 0 1
样例输出1
3
数据范围与测试点说明
- ;
- ;
- 棋子颜色为 或 。
时间限制与内存限制
- 时间限制: 秒
- 内存限制: KiB