#LQB0025. 移除棋子

移除棋子

题目描述

nn 颗棋子排成一排,每颗棋子为白色(用 11 表示)或黑色(用 00 表示)。每次操作可以从最左端或最右端移除一颗棋子。最终要求剩余棋子中白色棋子的数量恰好为 mm

给定 n,mn,m 以及棋子颜色序列,请计算最少需要移除多少颗棋子才能满足要求;若无法实现,输出 1-1

例 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。

输入格式

第一行输入两个整数 n,mn,m(以空格分隔),分别表示初始棋子数量与目标白色棋子数量。
第二行输入 nn 个整数(仅为 0011,以空格分隔),表示从左到右每颗棋子的颜色。

输出格式

输出一个整数,表示最少要移除的棋子数量;若无法使剩余白色棋子数量为 mm,输出 1-1

样例输入输出

样例输入1

8 2
0 1 0 1 1 0 0 1

样例输出1

3

数据范围与测试点说明

  • 1n1061\le n\le 10^6
  • 1m1061\le m\le 10^6
  • 棋子颜色为 0011

时间限制与内存限制

  • 时间限制:11
  • 内存限制:10241024 KiB