题目描述
给定一个由 n 个点围成的环形数组,点的下标从 1 到 n。每个点上标有一个正整数 ai,表示从该位置向前移动 ai 步。移动规则如下:
- 若当前位于位置 i,向前移动 ai 步后,新位置为 ((i−1+ai)%n)+1。
现有 m 次查询,每次查询给出起始位置 bi 和跳跃次数 ci,请计算并输出经过 ci 次跳跃后的最终位置。
输入格式
- 第一行:两个整数 n 和 m(1≤n,m≤105)。
- 第二行:n 个整数 a1,a2,...,an(1≤ai≤109)。
- 接下来 m 行:每行两个整数 bi 和 ci(1≤bi≤n,0≤ci≤1018)。
输出格式
对每个查询,输出一个整数,表示最终位置。
样例输入
5 3
2 3 1 4 5
1 2
2 3
5 0
样例输出
4
5
5
样例解释
-
查询1(b=1, c=2):
- 第1次:1→3
- 第2次:3→4
- 最终位置:4
-
查询2(b=2, c=3):
- 第1次:2→5
- 第2次:5→5
- 第3次:5→5
- 最终位置:5
-
查询3(b=5, c=0):
数据范围
- 1≤n,m≤105
- 1≤ai≤109
- 0≤ci≤1018