#P16816. [NWRRC 2023资格赛]Snakes&Snakes

[NWRRC 2023资格赛]Snakes&Snakes

题目背景

Vadim 有一块用于游玩 Snakes&Snakes 的一维棋盘。棋盘由 NN 个格子组成,从左到右编号为 11NN

初始时,棋子位于第 11 格;游戏目标是到达第 NN 格。

对于除第 11 格和第 NN 格以外的每个格子 ii,都有一个非负整数 pip_i

  • pi=0p_i=0,则第 ii 格为空;
  • 否则,第 ii 格上有一个将棋子向左传送的传送门。

保证第 11 格和第 NN 格均为空。

游戏规则

Snakes&Snakes 中的一个回合按照下列过程进行:

  1. 玩家掷一个六面骰子。若掷出的点数为 kk,棋子向右移动 kk 格,但不能越过第 NN 格。换言之,若棋子原来位于第 ii 格,则移动到

    min(i+k,N).\min(i+k,N).
  2. 若棋子到达第 NN 格,则玩家立即获胜。

  3. 若棋子到达第 ii 格:

    • pi=0p_i=0,则进入步骤 4;
    • 否则,棋子向左移动 pip_i 格,到达第 ipii-p_i 格,然后再次执行步骤 3。

    因此,棋子可能连续经过多个传送门。

  4. 若步骤 1 中掷出了 66,玩家可以在同一个回合内再次从步骤 1 开始执行;否则,本回合结束。

Margot 想知道:为了获胜,最少需要多少个回合?骰子结果可以极其不可能,只需要存在这样一种掷骰子序列即可。

输入格式

第一行输入一个整数 NN,表示棋盘大小:

2N2×105.2\le N\le 2\times 10^5.

第二行输入 N2N-2 个整数 pip_i,依次描述格子 i=2,3,,N1i=2,3,\ldots,N-1

0pi<i.0\le p_i<i.

输出格式

输出一个整数,表示获胜所需的最少回合数。

若无法到达第 NN 格,输出 -1

样例 1

10
0 1 1 1 1 1 1 0
-1

样例 2

10
1 2 1 2 0 1 1 1
1

样例 3

10
1 1 2 2 0 6 7 8
2