题目描述
Farmer John 刚给了奶牛们一个程序玩!程序包含两个整数变量 x 和 y,对一个正整数序列 a1,a2,…,an 执行如下操作:
- 初始时 x=1、y=0。任何一步之后,若 x≤0 或 x>n,程序立即终止。
- 程序把 x 和 y 同时加上 ax。
- 程序把 y 加上 ax,同时把 x 减去 ax。
- 程序反复交替执行第 2 步和第 3 步(先 2 后 3),直到终止(也可能永不终止)。也就是说,执行步骤的序列形如:第 2 步、第 3 步、第 2 步、第 3 步、第 2 步……
不过奶牛们的算术不太好,它们想看看这个程序是怎么跑的。请帮帮它们!
给定序列 a2,a3,…,an。对每个 i(1≤i≤n−1),把程序跑在序列 i,a2,a3,…,an 上。对每次运行:若程序终止,输出最终 y 的值;若不终止,输出 -1。
输入格式
第一行包含一个整数 n(2≤n≤2⋅105)。第二行包含 n−1 个用空格隔开的整数 a2,a3,…,an(1≤ai≤109)。
输出格式
输出 n−1 行:第 i 行输出程序跑在序列 i,a2,a3,…,an 上时所求的值。
4
2 4 1
3
6
8
3
1 2
-1
-1
说明/提示
第一组样例中:
- i=1 时,x 的变化为 1→2→0,y 变为 1+2=3。
- i=2 时,x 的变化为 1→3→−1,y 变为 2+4=6。
- i=3 时,x 的变化为 1→4→3→7,y 变为 3+1+4=8。