2864: 去重子段和

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:7 解决:1

题目描述

对于一串可能存在重复元素的无序数字a1,a2,a3,...,an(a, n<200000),进行q次询问(q<200000)。每次询问提供一个L和一个R(1<=L<=R<=n),需要求得集合{aL,a(L+1),...,a(R-1),aR}的和,即为a在[L, R]上的去重子段和。(因为集合中不存在重复的元素,所以实际求和时大小重复的元素只加一次,故称为去重)

输入

输入第一行为一个整数T(T<5),代表有T组测试样例。接下来每组测试样例的第一行是两个整数n, q。第二行是n个整数代表a数列。第3行到第(q+2)行每行有两个数,分别代表每次询问的L和R。

输出

每次询问输出一行,每行一个整数代表该次询问得到的去重子段和。

样例输入 复制

2
3 2
4 4 5
1 2
2 3
10 4
2 4 5 6 6 3 6 7 7 8
3 5
2 6
4 8
7 10

样例输出 复制

4
9
11
18
16
21

提示

输入文件较大,请尽量使用scanf输入