冬天快到了,校园里的情侣也越来越多了,熊熊也希望可以有个 npy 在冬天时互相取暖。但可惜自己过于羞涩,面对女孩子时总是脸红说不出话来,因此来找 CUGBACM 的情场高手鹏鹏寻求帮助。鹏鹏费了九牛二虎之力终于给熊熊找到了一位合适的有缘人,他们约好了在夏日广场的亭子里相见,但是可惜天公不作美,下雪了,要知道熊熊是最怕雪了,这可愁怀了熊熊。热情的 CUGBer 们,你们可以帮助熊熊找到甜甜的恋爱吗?
熊熊和亭子现在在数轴上,他现在位于 X 轴的起点,想要到达位于 n 点的亭子。熊熊从 Point1 开始向前走,可以向右跳不超过 d 的一定距离(可以等于 d 哦~)。即当他位于 x 点时,他可以到达 x+a 点(a 是大于 1 小于等于 d 的)。
从 Point1 到位于 Pointn 的亭子里,有的地方布满着熊熊害怕的雪,我们以 0 来表示;安全的位置我们以 1 来表示。即熊熊只可以到达为 1 的点,而不能到达为 0 的点。现在熊熊想请求各位求出到达亭子的最小跳跃次数,如果不能到达,那么输出 −1 即可。
输入格式
第一行为两个整数 n 和 d(2≤n≤1000,1≤d≤n−1)。n 代表着亭子的位置,d 为熊熊最大可以跳跃的距离;
第二行包含 n 个只含有 0 或 1 的数字。为 0 则表示不可经过,为 1 则表示可以经过。
需要注意的是,每次熊熊都是在第一个数所在的位置开始起跳。
输出格式
如果熊熊到达不了亭子,输出 −1。
其余情况下输出熊熊从 1 到 n 需要跳跃的最少次数。
输入样例#1
8 4
10010101
输出样例#1
2
输入样例#2
4 2
1001
输出样例 #2
-1
include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <map>
using namespace std;
const int N= 1005;
int main()
{
long long n,d;
cin>>n>>d;
string a;
cin>>a;
int b=0,pos=0,ct=0,f=0;
for(int i=0;i<n;i++)
{
int j=i+1;
pos=i;
b=1;
f=0;
while(b<=d&&j<n)
{
// cout<<a[j]<<" "<<endl;
if(a[j]=='1')
{
b++;
pos=j;
j++;
}
else
{
b++;
j++;
}
}
if(pos==i)
{
f=1;
cout<<-1<<endl;
break;
}
else
{
i=pos;
ct++;
}
}
if(!f)
cout<<ct<<endl;
return 0;
}