#F0001P1205. 数字跳跃游戏

数字跳跃游戏

题目描述

小明正在玩一个数字跳跃游戏。游戏在一个长度为 n+1 的数轴上进行,数轴上的位置标记为 0, 1, 2, ..., n。每个位置上有一个正整数 a[i]。

游戏规则如下:

  1. 小明一开始站在位置 0 上。
  2. 每次移动时,小明会查看当前位置上的数字:
    • 如果是偶数,小明向右移动该数字的步数。
    • 如果是奇数,小明向左移动该数字的步数。
  3. 如果小明到达了位置 n 或者超过了位置 n,则游戏胜利。
  4. 如果小明走到了负数位置,或者在有限步数内无法到达或超过位置 n,则游戏失败。

下面是数轴的示意图和移动规则的演示:

  ← 向左移动                向右移动 →
  +-----+-----+-----+-----+-----+-----+-----+
  | a₀  | a₁  | a₂  | a₃  | a₄  | a₅  |  ...| 数字
  +-----+-----+-----+-----+-----+-----+-----+
  |  0  |  1  |  2  |  3  |  4  |  5  |  ...| 位置
  +-----+-----+-----+-----+-----+-----+-----+
     ↑      ↑      ↑      
  若a₀为  若a₂为  若a₄为  
  偶数→   奇数←   偶数→    

举例说明:

  • 如果小明在位置 2 上,且该位置的数字 a[2] = 4(偶数),则他会向右移动 4 步,最终到达位置 6。
  • 如果小明在位置 5 上,且该位置的数字 a[5] = 3(奇数),则他会向左移动 3 步,最终到达位置 2。

小明想知道,对于给定的数轴和上面的数字,他是否能够获得游戏胜利。

输入格式

第一行包含一个正整数 n,表示数轴的终点位置。 第二行包含 n+1 个正整数 a[0], a[1], a[2], ..., a[n],分别表示位置 0 到位置 n 上的数字。

输出格式

如果小明能够获得游戏胜利,输出 "PASS";否则,输出 "FAIL"。

样例数据

5
3 2 1 4 2 5
FAIL
7
2 3 1 2 4 1 2 3
FAIL
10
4 2 3 8 1 6 5 2 9 3 7
PASS

样例解释

样例1:

初始状态: 小明在位置 0
  +-----+-----+-----+-----+-----+-----+-----+
  |  3  |  2  |  1  |  4  |  2  |  5  |  n  | 数字
  +-----+-----+-----+-----+-----+-----+-----+
  | [0] |  1  |  2  |  3  |  4  |  5  | 终点 | 位置
  +-----+-----+-----+-----+-----+-----+-----+
  1. 小明在位置0,数字是3(奇数),他向左移动3步,到达位置-3。由于-3是负数位置,游戏立即失败,输出"FAIL"。

样例2:

初始状态及移动过程:
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+
  |  2  |  3  |  1  |  2  |  4  |  1  |  2  |  3  |  n  | 数字
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+
  | [0] |  1  |  2  |  3  |  4  |  5  |  6  |  7  | 终点 | 位置
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+
    →2    ←3    ←1
  1. 小明一开始在位置0,数字是2(偶数),向右移动2步到位置2。
  2. 位置2上的数字是1(奇数),向左移动1步到位置1。
  3. 位置1上的数字是3(奇数),向左移动3步到位置-2。
  4. 由于-2是负数位置,游戏失败,输出"FAIL"。

样例3:

初始状态及移动过程:
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  |  4  |  2  |  3  |  8  |  1  |  6  |  5  |  2  |  9  |  3  |  7  |  n  | 数字
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  | [0] |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  | 10  | 终点 | 位置
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    →4           →8    ←1
  1. 小明一开始在位置0,数字是4(偶数),向右移动4步到位置4。
  2. 位置4上的数字是1(奇数),向左移动1步到位置3。
  3. 位置3上的数字是8(偶数),向右移动8步到位置11,超过了终点位置10。
  4. 因为小明超过了终点位置,所以游戏胜利,输出"PASS"。

数据范围

  • 1 ≤ n ≤ 1000
  • 1 ≤ a[i] ≤ 1000