版权声明: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);
}
嘿嘿一次循环搞定。。。。。。。一次遍历每个房子最远能到的位置