问题2694--最小的翻转次数

2694: 最小的翻转次数

时间限制: 1 Sec  内存限制: 128 MB
提交: 7  解决: 2
[提交] [状态] [讨论版] [命题人:]

题目描述

在仅包含0和1的数组A中,一次K位翻转包括选择一个长度为K的(连续)子数组,同时将子数组中的每个0更改为1,而每个1更改为0。返回所需的K位翻转的最小次数,以便数组没有值为0的元素。
如果不可能,返回-1。

输入

第一行两个整数n(n<=1000)和k(k<=n)
接下来n个数,不是0就是1

输出

返回所需的K位翻转的最小次数,以便数组没有值为0的元素。
如果不可能,返回-1。

样例输入 Copy

8 3
0 0 0 1 0 1 1 0

样例输出 Copy

3

提示

样例解释:
翻转 A[0],A[1],A[2]: A变成 [1,1,1,1,0,1,1,0]
翻转 A[4],A[5],A[6]: A变成 [1,1,1,1,1,0,0,0]
翻转 A[5],A[6],A[7]: A变成 [1,1,1,1,1,1,1,1]
样例2:
3 1
0 1 0
输出:2
样例3:
3 2
1 1 0
输出:-1

来源/分类