题目背景
CYJian想到了一个很好玩的游戏呢...
题目描述
CYJian现在给你一个长度为N的数列,你可以选择一个数x,然后获得一个得分,得分越大越好。
得分是这样计算的:
首先把小于等于x的数标记,然后你的得分就是每一个连续标记的区间的长度的平方和。
CYJian觉得这样太简单了,答案显然就是最大值嘛所以他就把得分改成了原来的得分除以你选择的数。
CYJian还是觉得这样太简单了,所以他需要你选择的数得到的区间的个数在l~r的范围内。
CYJian还是觉得这样太简单了,所以他加上了T组询问。
CYJian还是觉得这样太简单了,所以他决定强制在线。
输入格式
第一行两个正整数n,T。
第二行n个正整数Numi表示CYJian给出的数列。
接下来T行,每行四个正整数a,b,x,y,你需要这样得到真正的l和r:
其中lastans表示上一次询问的最大分数(原始得分)和得到这个最大的分数的x的乘积。特别的,我们令第一次询问时lastans=0。
输出格式
T行,每行两个正整数表示每一次询问能得到的最大的分数(原始的得分)和得到这个最大的分数的x。特别的,如果无解输出"−1 −1"(此时 lastans 为 1)。如果有多解则输出选择的数最大的一组。
CYJian想知道你是不是蒙的,所以你还需要告诉他这一次询问的L,R,lastansmodn。
具体参见样例。
提示
Subtask 1(30 pts):1≤N,T≤102
Subtask 2(30 pts):1≤N,T≤103
Subtask 3(40 pts):1≤N≤1061≤T≤103
1≤Numi≤106
其余输入的数字均在int范围内。