#P14683. [Bulgarian2022]Rotations

[Bulgarian2022]Rotations

(轮转)

克利米喜欢摆弄各种和式。今天她在看一个包含 NN 个整数的序列 AA

我们把一个整数的一次**轮转(rotation)**定义为:将它十进制表示中的最后一位数字移到最前面。
例如,对 123 做一次轮转后会得到 312

请你编写程序,支持以下两类操作:

  • 1 L R:对位置 LLRR(含端点)上的每个数都执行一次轮转;
  • 2 L R:查询位置 LLRR(含端点)上的数之和。

为方便起见,题目保证序列中的所有数在十进制表示中都不含数字 0

输入格式

第一行两个整数 N,QN,Q,分别表示数的个数与操作数。
第二行输入序列 A1,A2,,ANA_1,A_2,\dots,A_N
接下来 QQ 行,每行描述一个操作,格式为上文两种之一。

输出格式

对于每个 2 类操作,输出一行一个整数表示答案。

数据范围

1N1061 \le N \le 10^6 1Q500001 \le Q \le 50000 1Ai<1061 \le A_i < 10^6

并且 AiA_i 的十进制表示中不含数字 0

子任务与评分

子任务 分值 限制 额外限制
1 9 N5000, Q5000N \le 5000,\ Q \le 5000
2 13 N106, Q50000N \le 10^6,\ Q \le 50000 所有 1 类操作都满足 L=RL=R
3 所有 2 类操作都满足 L=RL=R
4 25 10<Ai<10010 < A_i < 100
5 40 无额外限制

样例

输入

3 5
15 35 112
2 1 2
1 2 3
2 1 3
1 1 2
2 2 3

输出

50
279
246

样例说明

操作 说明
2 1 2 15+35=5015+35=50
1 2 3 35 \to 53112 \to 211
2 1 3 15+53+211=27915+53+211=279
1 1 2 15 \to 5153 \to 35
2 2 3 35+211=24635+211=246