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);
}
嘿嘿一次循環搞定。。。。。。。一次遍歷每個房子最遠能到的位置