我也想要甜甜的恋爱

冬天快到了,校园里的情侣也越来越多了,熊熊也希望可以有个 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linalw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值