mioj 国王招驸马

版权声明:spark https://blog.csdn.net/qq_35619728/article/details/89453965

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);
}

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

猜你喜欢

转载自blog.csdn.net/qq_35619728/article/details/89453965