CF283B Cow Program

题目描述

Farmer John 刚刚给奶牛们分发了一个可以玩的程序!这个程序包含两个整数变量 $x$ 和 $y$,并对一个正整数序列 $a_{1}, a_{2}, ..., a_{n}$ 进行如下操作: 1. 最初,$x=1$,$y=0$。如果在任何一步之后 $x \leq 0$ 或 $x > n$,程序立即终止。 2. 程序同时将 $x$ 和 $y$ 都增加 $a_{x}$ 的值。 3. 程序将 $y$ 增加 $a_{x}$,同时将 $x$ 减去 $a_{x}$。 4. 程序不断交替重复执行步骤 2 和步骤 3(先执行步骤 2,再执行步骤 3),直到终止(也可能永不终止)。因此,整个操作序列可能是:步骤2,步骤3,步骤2,步骤3,步骤2,如此往复。 不过,奶牛们的算数不太好,她们想看看这个程序到底如何工作。请你帮帮她们! 现在给定序列 $a_{2}, a_{3}, ..., a_{n}$。对于每一个 $i$($1\leq i\leq n-1$),将程序作用于序列 $i, a_{2}, a_{3}, ..., a_{n}$。也就是说,$a_1=i$。对于每一次运行,请输出最终的 $y$ 值(如果程序终止),或者如果程序不会终止则输出 $-1$。

输入格式

第一行包含一个整数 $n$($2\leq n\leq 2\times 10^{5}$)。 第二行包含 $n-1$ 个用空格分隔的整数 $a_{2}, a_{3}, ..., a_{n}$($1\leq a_{i}\leq 10^{9}$)。

输出格式

输出共 $n-1$ 行。对于第 $i$ 行,输出当程序以序列 $i, a_{2}, a_{3}, ..., a_{n}$ 运行时所得到的 $y$ 的最终值。如果程序不会终止,则输出 $-1$。

说明/提示

在第一个样例中: 1. 当 $i=1$ 时,$x$ 变化为 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF283B/c3adc91e6a416ef5e3a3efeecae9ab6c709eb6f3.png),$y$ 变化为 $1+2=3$。 2. 当 $i=2$ 时,$x$ 变化为 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF283B/25cfed609f3dc5147a57c7f4ac4fe5ab1317ed75.png),$y$ 变化为 $2+4=6$。 3. 当 $i=3$ 时,$x$ 变化为 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF283B/3160e5591c358bc094f55b65bd30a378832bf854.png),$y$ 变化为 $3+1+4=8$。 由 ChatGPT 5 翻译