#YHM17002. 环形跳跃2

环形跳跃2

题目描述
给定一个由 nn 个点围成的环形数组,点的下标从 11nn。每个点上标有一个正整数 aia_i,表示从该位置向前移动 aia_i。移动规则如下:

  • 若当前位于位置 ii,向前移动 aia_i 步后,新位置为 ((i1+ai)%n)+1((i-1 + a_i) \% n) + 1

现有 mm 次查询,每次查询给出起始位置 bib_i 和跳跃次数 cic_i,请计算并输出经过 cic_i 次跳跃后的最终位置。

输入格式

  • 第一行:两个整数 nnmm1n,m1051 ≤ n, m ≤ 10^5)。
  • 第二行:nn 个整数 a1,a2,...,ana_1, a_2, ..., a_n1ai1091 ≤ a_i ≤ 10^9)。
  • 接下来 mm 行:每行两个整数 bib_icic_i1bin1 ≤ b_i ≤ n0ci10180 ≤ c_i ≤ 10^18)。

输出格式
对每个查询,输出一个整数,表示最终位置。

样例输入

5 3  
2 3 1 4 5  
1 2  
2 3  
5 0  

样例输出

4  
5  
5  

样例解释

  1. 查询1b=1b=1, c=2c=2):

    • 第1次:131 → 3
    • 第2次:343 → 4
    • 最终位置:44
  2. 查询2b=2b=2, c=3c=3):

    • 第1次:252 → 5
    • 第2次:555 → 5
    • 第3次:555 → 5
    • 最终位置:55
  3. 查询3b=5b=5, c=0c=0):

    • 不移动,最终位置:55

数据范围

  • 1n,m1051 ≤ n, m ≤ 10^5
  • 1ai1091 ≤ a_i ≤ 10^9
  • 0ci10180 ≤ c_i ≤ 10^{18}