#3003. 奶牛程序

奶牛程序

题目描述

Farmer John 刚给了奶牛们一个程序玩!程序包含两个整数变量 xx 和 yy,对一个正整数序列 a1,a2,…,ana_1, a_2, \ldots, a_n 执行如下操作:

  1. 初始时 x=1x=1、y=0y=0。任何一步之后,若 x≤0x \le 0 或 x>nx \gt n,程序立即终止。
  2. 程序把 xx 和 yy 同时加上 axa_x。
  3. 程序把 yy 加上 axa_x,同时把 xx 减去 axa_x。
  4. 程序反复交替执行第 2 步和第 3 步(先 2 后 3),直到终止(也可能永不终止)。也就是说,执行步骤的序列形如:第 2 步、第 3 步、第 2 步、第 3 步、第 2 步……

不过奶牛们的算术不太好,它们想看看这个程序是怎么跑的。请帮帮它们!

给定序列 a2,a3,…,ana_2, a_3, \ldots, a_n。对每个 ii(1≤i≤n−11 \le i \le n-1),把程序跑在序列 i,a2,a3,…,ani, a_2, a_3, \ldots, a_n 上。对每次运行:若程序终止,输出最终 yy 的值;若不终止,输出 -1。

输入格式

第一行包含一个整数 nn(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5)。第二行包含 n−1n-1 个用空格隔开的整数 a2,a3,…,ana_2, a_3, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9)。

输出格式

输出 n−1n-1 行:第 ii 行输出程序跑在序列 i,a2,a3,…,ani, a_2, a_3, \ldots, a_n 上时所求的值。

4
2 4 1
3
6
8
3
1 2
-1
-1

说明/提示

第一组样例中:

  1. i=1i=1 时,xx 的变化为 1→2→01 \to 2 \to 0,yy 变为 1+2=31+2=3。
  2. i=2i=2 时,xx 的变化为 1→3→−11 \to 3 \to -1,yy 变为 2+4=62+4=6。
  3. i=3i=3 时,xx 的变化为 1→4→3→71 \to 4 \to 3 \to 7,yy 变为 3+1+4=83+1+4=8。