#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