#P4847. 银河英雄传说V2
银河英雄传说V2
题目背景
小 H 昨天看到了 luogu P1196 这一题,触发了他内心中对英雄的感慨/雾。可是无奈他不会这一题,只好去请教小 W。在讲完那一题之后,小 W 灵机一动——不如改一下这道题吧。
于是,一个很水的签到题出现了。
题目描述
某 dalao:把题目说简单一点,方便让我一分钟 A 掉!
于是小 W 只好把题意简化一下:
给定 个长度为 的序列,第 个序列中有一个元素,值为 ,接下来有三种操作:
M x y,表示把 所在的序列放到 所在的序列之后。如果 已经在同一个序列,则不进行操作。D x,表示把 所在的序列中从 处断开,也就是把 及 之后的元素单独取出来作为一个序列。Q x y,表示查询 到 之间(包括x和y)所有元素的值之和。如果 和 不在同一个序列之中,输出-1.
输入格式
第一行为两个数 ,分别代表元素个数和操作次数。第二行有 个数,为 。
接下来m行,每行包括三种情况:M x y,D x 或 Q x y,与题目描述对应。
输出格式
对于每一个 Q x y,输出一个数,表示所有元素的值之和。
5 10
57770 55352 18768 21847 79100
M 1 4
M 3 2
Q 5 2
M 3 4
M 3 5
M 4 4
M 3 1
D 1
Q 2 2
Q 2 1
-1
55352
113122
30 100
2193 75245 24438 95450 96514 84854 15292 9488 37488 940 52991 15190 64052 17398 80379 77861 88717 34751 16783 88345 27612 21748 79776 43058 35590 49064 45012 37206 70870 30643
M 18 26
M 28 27
M 25 4
M 12 22
M 26 15
M 3 1
M 20 20
M 7 21
M 18 29
M 21 26
M 29 10
M 27 23
M 30 28
M 22 10
M 13 21
M 1 23
M 25 9
M 29 27
M 23 25
M 11 12
M 1 4
M 26 14
M 26 9
D 4
M 16 8
M 16 20
M 4 27
M 9 20
M 11 1
M 19 8
Q 12 7
M 5 10
D 20
Q 29 2
Q 9 15
M 29 21
D 5
M 23 8
M 6 6
D 23
D 6
Q 4 8
D 21
Q 29 23
Q 19 4
M 21 21
M 20 25
M 27 29
D 2
Q 7 2
M 7 15
Q 11 18
D 26
Q 21 18
M 22 11
M 12 12
M 20 15
M 22 4
D 20
M 4 5
M 12 2
Q 27 20
M 30 2
M 28 9
M 20 11
M 10 21
M 12 24
Q 14 14
M 6 29
Q 13 18
Q 10 3
Q 23 3
D 4
M 27 13
M 6 23
M 7 14
Q 12 17
M 18 25
Q 2 19
D 3
D 9
Q 2 16
Q 3 8
Q 4 10
D 24
M 21 4
Q 17 15
Q 19 7
Q 1 24
Q 9 18
D 12
M 4 16
M 27 21
D 26
M 5 14
M 15 19
M 21 26
M 18 27
Q 21 8
Q 18 13
52230
-1
-1
254468
291078
112233
-1
231636
62363
-1
17398
178645
25378
219268
-1
419122
347453
-1
-1
-1
274542
-1
269126
-1
178645
提示
(出题人非常良心地给了一个大一点的样例!)
【样例 解释】
首先有 个序列(一个横排为一个序列),排列如下:
1
2
3
4
5
第一个操作将 放到 的后面,变成
2
3
4,1
5
第二个操作将 放到 后面,变成
2,3
4,1
5
然后查询第 个元素到第 个元素之间的和,由于不存在,输出 -1;
将 所在的序列加到 所在的序列后面,变成
4,1,2,3
5
接下来变成了 ,也就是所有元素都在 个序列了,因此接下来的两个合并操作没有用了,然后把 之后的数字删除,变成:
1,2,3
5,4
查询 到 ,输出 ,也就是 ;
查询 到 ,输出 ,也就是 .
【数据范围】

为了避免某些乱搞(可能避免不了),前 个点按照传统方式计分,每个测试点 分;后五个点为 subtask 捆绑测试,必须全部通过才能得 分,否则不得分。
对于所有数据,。