首先,我们分析分数的计算公式。分数由两部分组成:
我们考虑一个下标 k,如果它同时是 x 的倍数和 y 的倍数,那么它一定是 x 和 y 的最小公倍数 lcm(x,y) 的倍数。在这种情况下,元素 ak 会在正贡献项中被加一次,在负贡献项中被减一次,所以 ak−ak=0,它们对总分数的贡献相互抵消了。
多多有一个长度为 n 的序列 (a1,a2,...,an),对于给定的 x 和 y ;
一个序列的分数定义为 $\sum_{1}^{\left\lfloor\frac{n}{x}\right\rfloor} a_{i \cdot x}-\sum_{1}^{\left\lfloor\frac{n}{y}\right\rfloor} a_{j \cdot y}$
序列元素可任意交换位置,得到一个新的序列。多多想知道,经过若干次操作后,新的序列的最大分数是多少。
第一行为 2 个数字,n,q ,其中 n≤2∗105,q≤104
接下来 1 行 n 个数字,分别为 a1,a2,...,an ,其中 0≤a1<109
接下来 q 行,每行两个数字 x,y ,其中 1≤x,y≤n
输出 q 行,每行包含一个数字,代表序列的最大分数
输入
7 1
5 9 3 8 2 10 3
2 3
输出
17
说明
按照题目中的分数定义,序列的分数为
(a2+a4+a6)−(a3+a6) ;
经过元素交换后一种可能的序列为
3 9 2 10 8 5 3 ,
此时分数最大为 (9+10+5)−(2+5)=17