mioj 国王招驸马

mioj

国王招驸马


描述

国王为了给公主找到这个世界上最聪明的人作为驸马,发明了一个游戏。在游戏中,国王设置了多个连续的屋子,从第一个屋子开始,每个屋子都会有n(n>=0)个门来进入接下来的1~n个屋子(例如这个屋子有2个门,那么就是第一个门可以进入之后第一个屋子,第二个门可以进入之后第二个屋子), 最后经过屋子最少的人将获得胜利,迎娶美丽的公主。


输入

一组数据,分别用(,)隔开,每一个数字表示对应的屋子共有多少扇门。


输出

一个整数,表示到达最后屋子时经过的最少的屋子数,如果不能到达则返回-1。


//athor spark
// 
#include "stdio.h"
int main(void)

{
	static int a,b[100],i,j,k;
	static char p;
	while (~scanf("%d,", &a))
	{
		p = getchar();
		if (p == 'p')
			break;
		b[i++] = a;

	}
	int lastreach = 0, ans = 0, reach = b[0];
	for (j = 1; j < i&&j <= reach; j++)
	{
		if (j > lastreach)
		{
			ans++;
			lastreach = reach;
		}
		if (reach >= j + b[j])
			reach = reach;
		else
			reach = j + b[j];
	}
	if (reach < i - 1)
		ans = -1;
	printf("%d",ans);
	scanf("%d,", &a);
}

嘿嘿一次循环搞定。。。。。。。一次遍历每个房子最远能到的位置
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值