2596: 走迷宫
[Creator : ]
Description
有一天,小瓦夏发现自己在一个迷宫里,迷宫由 (n + 1) 个房间组成,房间编号从 1 到 (n + 1)。起初,瓦夏在第一个房间,要走出迷宫,他需要到达 (n + 1) -第三个房间。
迷宫的结构如下。迷宫的每个房间都有两个单向入口。假设房间号为 i,(1 ≤ i ≤ n)。每个人可以通过第一个入口移动到 (i + 1) 号房间,每个人也可以通过第二个入口移动到 pi 号房间,其中 1 ≤ pi ≤ i 号房间。
为了不迷路,瓦夏决定采取以下行动。
瓦夏每次进入某个房间,都会在天花板上画一个十字。最初,瓦夏在 1 房间的天花板上画了一个十字。
假设瓦夏现在在 i 房间,并且已经在天花板上画了一个十字。那么,如果天花板上的十字架数目是奇数,瓦夏就会使用第二个传送门(它通向 pi 房间),否则瓦夏就会使用第一个传送门。
帮助瓦夏确定最终到达 (n + 1) 房间所需的传送门次数。
Input
第一行包含整数 n (1 ≤ n ≤ 103) -房间数。
第二行包含 n 个整数 pi (1 ≤ pi ≤ i)。每个 pi 表示一个人在使用 i -房间中的第二个入口时可以到达的房间数量。
Output
打印一个数字--男孩走出迷宫所需的传送门移动次数。由于数字可能比较大,因此打印它的模数为 1000000007 (109 + 7)。 (109 + 7)。
Sample Input Copy
4
1 1 2 3
Sample Output Copy
20