传统题 2000ms 512MiB

海浪

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

描述

染染船长,准备出发!

话虽然是这么说,但出发之前除了建设好整条船,还需要观察一下海面的情况,选择一个良辰吉日出海。

海面情况的一个重要指标就是海浪,尤其是其中很长的海浪。

为了能够量化这个问题,染染将本该连续的海面离散化成为了一个长度为 nn 的整数高度序列 h1,h2,,hnh_1, h_2, \cdots, h_n,可以认为 hih_i 表示第 ii 块海面的波动高度。此时海浪可以定义为连续的海面 hl,hl+1,,hrh_l, h_{l+1}, \cdots, h_r,满足存在实数基准高度 hBh_B,使得对于 i=l+1,l+2,,ri = l+1, l+2, \cdots, r 都有:

(hi1hB)(hihB)<0(h_{i-1} - h_B) \cdot (h_i - h_B) < 0

染染现在会给出 qq 次询问,每次询问给出 x,yx, y 表示查询完全包含在连续的海面 hx,hx+1,,hyh_x, h_{x+1}, \cdots, h_y 内的最长海浪的长度。也就是说染染要找到海浪 hl,hl+1,,hrh_l, h_{l+1}, \cdots, h_r 使得 xlryx \leq l \leq r \leq y 并最大化 rl+1r - l + 1


输入

本题单个测试点内包含多组测试数据。

输入第一行一个正整数 TT (1T201 \leq T \leq 20),表示数据组数。

每组数据第一行两个正整数 n,qn, q (1n,q1051 \leq n, q \leq 10^5),表示海面被离散化后的序列长度和询问数量。

第二行 nn 个正整数 h1,h2,,hnh_1, h_2, \cdots, h_n (109hi109-10^9 \leq h_i \leq 10^9),表示海面被离散化后的序列。

接下来 qq 行,第 ii 行包含两个正整数 x,yx, y (1xyn1 \leq x \leq y \leq n),表示第 ii 次询问。

保证单个测试点内每组数据中 nn 的和与 qq 的和不超过 10610^6


输出

为了避免输出量过大,输出对每组数据进行压缩。

对于每组数据,假设染染第 ii 次询问的答案为 rir_i,你只需要输出一行一个压缩后的非负整数 RRR=(i=1qiri)mod(109+7) R = (\sum_{i=1}^{q} i \cdot r_i) \mod (10^9 + 7)


样例

1
7 3
-1 1 -1 1 3 7 3
1 3
3 7
1 5
21

提示

11 次询问的答案为 33,对应海浪 h1,h2,h3h_1, h_2, h_31,1,1-1, 1, -1

22 次询问的答案为 33,对应海浪 h5,h6,h7h_5, h_6, h_73,7,33, 7, 3

33 次询问的答案为 44,对应海浪 h1,h2,h3,h4h_1, h_2, h_3, h_41,1,1,1-1, 1, -1, 1


2025 CEIT算法集训队 暑期训练赛 #1

未参加
状态
已结束
规则
XCPC
题目
10
开始于
2025-8-5 12:00
结束于
2025-8-11 12:00
持续时间
144 小时
主持人
参赛人数
4