问题 6786 --二进制序列

6786: 二进制序列★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 11  解决: 1
[提交][状态][命题人:]

题目描述

给定一个长度为n的只包含0和1的二进制序列

每一次操作,可以删除最前面的或者最后面的一个元素

请问至少要操作几次,可以使得剩下的二进制序列的和为s

输入

第一行输入一个正整数t, 1<=t<=10000,表示一共有多少组测试数据

下面一共有t组测试数据,每组测试数据包括两行:

第1行输入两个整数,分别表示n和s,   1<=n,s<=200000

第2行包括n个0或者1的二进制数

输出

一共t行,每行输出本组测试数据得到累加和为s至少需要操作多少次
样例输入
Copy
7
3 1
1 0 0
3 1
1 1 0
9 3
0 1 0 1 1 1 0 0 1
6 4
1 1 1 1 1 1
5 1
0 0 1 1 0
16 2
1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1
6 3
1 0 1 0 0 0
样例输出
Copy
0
1
3
2
2
7
-1

提示

1)第一组测试数据,不需要操作

2)第二组测试数据,只需删除最前面这个元素

3)第三组测试数据,需要删除前面2个和最后1个元素

来源

[提交][状态]