#J20011. 旋转与求和查询

旋转与求和查询

问题描述

给定一个长度为 NN 的整数序列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N)

按顺序处理 QQ 个查询,类型有两种:

  • 1 c:将序列 AA 的第一个元素移到末尾,重复 cc 次。
  • 2 l r:输出 i=lrAi\sum_{i=l}^{r} A_i 的值。

输入格式

第一行包含两个整数 NNQQ

第二行包含 NN 个整数 A1,A2,,ANA_1, A_2, \ldots, A_N

接下来 QQ 行,每行一个查询(1 c2 l r)。

输出格式

对于每个 2 l r 查询,输出一行一个整数。

样例输入 1

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

样例输出 1

8
9

样例输入 2

5 7
1 2 4 8 16
2 1 5
1 4
1 5
2 1 5
2 2 4
1 1
2 3 3

样例输出 2

31
31
7
4

评测数据规模

对于所有数据,保证 1N2×1051 \le N \le 2 \times 10^51Q2×1051 \le Q \le 2 \times 10^51Ai1091 \le A_i \le 10^91cN1 \le c \le N1lrN1 \le l \le r \le N。至少存在一次类型 22 的查询。