#L0333. 循环的尽头

循环的尽头

题目背景

Special for beginners, ^_^

题目描述

有一个长度为 n 的循环数组,编号为 1 到 n。

开始时你站在位置 1。

给定 n 个整数:

a1 a2 ... an

接下来一共进行 n 步操作。

每一步:

先把当前位置的数字加入答案。

然后根据当前数字移动位置:

如果当前数字 > 0,向右移动 ai 步

如果当前数字 < 0,向左移动 |ai| 步

如果当前数字 = 0,则位置不变

数组是循环的:

向右超过 n 就回到 1

向左超过 1 就回到 n

所有 n 步执行结束后,输出最终得到的答案。

输入格式

第一行输入一个整数 n。

第二行输入 n 个整数:

a1 a2 ... an

数据范围:

1 ≤ n ≤ 2e5 -1e9 ≤ ai ≤ 1e9

输出格式

输出一个整数,表示最终答案。

样例

5
2 -1 3 1 -2
12

样例解释

数组:

2 -1 3 1 -2

开始位置:1

步骤:

第1步 位置1,加2 向右2步,到位置3

第2步 位置3,加3 向右3步,到位置1

第3步 位置1,加2 向右2步,到位置3

第4步 位置3,加3 向右3步,到位置1

第5步 位置1,加2 向右2步,到位置3

答案:

2 + 3 + 2 + 3 + 2 = 12