该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
描述
染染船长,准备出发!
话虽然是这么说,但出发之前除了建设好整条船,还需要观察一下海面的情况,选择一个良辰吉日出海。
海面情况的一个重要指标就是海浪,尤其是其中很长的海浪。
为了能够量化这个问题,染染将本该连续的海面离散化成为了一个长度为 n 的整数高度序列 h1,h2,⋯,hn,可以认为 hi 表示第 i 块海面的波动高度。此时海浪可以定义为连续的海面 hl,hl+1,⋯,hr,满足存在实数基准高度 hB,使得对于 i=l+1,l+2,⋯,r 都有:
(hi−1−hB)⋅(hi−hB)<0
染染现在会给出 q 次询问,每次询问给出 x,y 表示查询完全包含在连续的海面 hx,hx+1,⋯,hy 内的最长海浪的长度。也就是说染染要找到海浪 hl,hl+1,⋯,hr 使得 x≤l≤r≤y 并最大化 r−l+1。
输入
本题单个测试点内包含多组测试数据。
输入第一行一个正整数 T (1≤T≤20),表示数据组数。
每组数据第一行两个正整数 n,q (1≤n,q≤105),表示海面被离散化后的序列长度和询问数量。
第二行 n 个正整数 h1,h2,⋯,hn (−109≤hi≤109),表示海面被离散化后的序列。
接下来 q 行,第 i 行包含两个正整数 x,y (1≤x≤y≤n),表示第 i 次询问。
保证单个测试点内每组数据中 n 的和与 q 的和不超过 106。
输出
为了避免输出量过大,输出对每组数据进行压缩。
对于每组数据,假设染染第 i 次询问的答案为 ri,你只需要输出一行一个压缩后的非负整数 R:
R=(∑i=1qi⋅ri)mod(109+7)
样例
1
7 3
-1 1 -1 1 3 7 3
1 3
3 7
1 5
21
提示
第 1 次询问的答案为 3,对应海浪 h1,h2,h3 即 −1,1,−1。
第 2 次询问的答案为 3,对应海浪 h5,h6,h7 即 3,7,3。
第 3 次询问的答案为 4,对应海浪 h1,h2,h3,h4 即 −1,1,−1,1。