题目描述
为了悄悄准备一个神秘的质数,MCPlayer542 伤透了脑筋。
随后他发明了一种聪明愚蠢的办法,并起名为“质数分”。
他准备了 n 个不同的数 a1, a2, …, an 作为测试点,并定义“质数分” score(x,l,r) 如下:
score(x,l,r)=i=l∑rf(x,ai)
其中
f(x,y)=⎩⎨⎧u−y,u,−x⋅y,0,x=11<x≤y, gcd(x,y)=1x=1, gcd(x,y)=xotherwise可见质数的“质数分”通常会比较高但还是没什么卵用。
于是 MCPlayer542 急了,现在他只想暴力乱测,并得到一个得分和 ∑i=1106score(i,l,r)。他打算测试 q 次,每次测试给定 u 和 l,其中 u 为函数 f(x,y) 的参数。
对于每次询问,他想知道所能得到的最大得分和以及能得到这个最大得分和的最小 r 是多少。
输入格式
输入数据的第一行包含两个整数 n, q (1≤n, q≤5×105),用单个空格分隔。
第二行包含 n 个整数 a1, a2, …, an (1≤ai≤106),用单个空格分隔,表示测试点的数据。
接下来 q 行,每行两个整数 ui, li (1≤ui≤1.8×107, 1≤li≤n),用单个空格分隔,表示一次询问。
输出格式
对每个询问输出一行两个数,即对应询问的最大得分和以及能获得该得分的最小 ri (li≤ri≤n),用单个空格分隔。
提示
在样例 1 的第一个询问中,u1=14, l1=4。若我们选择 r1=6,则最后的得分和为 ∑i=1106score(i,4,6)。其中:
- score(1,4,6)=13+9+11=33;
- score(2,4,6)=0+14+14=28;
- score(3,4,6)=0+14−9=5;
- score(4,4,6)=0+14+0=14;
- score(5,4,6)=0−25+0=−25;
- i 取其他值时均有 score(i,4,6)=0+0+0=0。
故 r1=6 时得分和为 33+28+5+14−25=55。
可以证明在 r1 取其他值时无法得到更大的得分和,故答案为 55,且能达成的最小 r1 为 6。