#lg15133. [ROIR 2026] 最后的滑动窗口问题

    ID: 9652 传统题 2000ms 512MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>线段树树状数组扫描线单调栈NOI/NOI+/CTS

[ROIR 2026] 最后的滑动窗口问题

[AdditionalFile5570.zip](file://AdditionalFile5570.zip?type=additional_file)

#5570. 「ROIR 2026 Day2」滑动窗口

标签: 传统 | 时间限制: 2000 ms | 内存限制: 512 MiB |

题目描述

译自 ROI Regional 2026 Day2 T3. Скользящие окна

给定一个长度为 nn 的数组 a1,a2,,ana_1, a_2, \dots, a_n

长度为 kk滑动窗口是指数组上所有连续长度为 kk 的子段,即 [ai,,ai+k1][a_i, \dots, a_{i+k-1}]ii11 到数组长度 k+1-k+1)。

需要回答 qq 个询问:对于给定的 l,r,kl, r, k,在子数组 [al,,ar][a_l, \dots, a_r] 上,计算所有长度为 kk 的滑动窗口的最小值之和。

输入格式

第一行两个整数 n,qn, q (1n,q100000)(1 \leq n, q \leq 100000),表示数组长度和查询数量。

第二行 nn 个整数 a1,,ana_1, \dots, a_n (1ai109)(1 \leq a_i \leq 10^9),表示数组元素。

接下来 qq 行,每行三个整数 li,ri,kil_i, r_i, k_i $(1 \leq l_i \leq r_i \leq n,\ 1 \leq k_i \leq r_i - l_i + 1)$,表示第 ii 个查询的左右端点和窗口长度。

输出格式

输出 qq 行,每行一个整数,表示对应查询的滑动窗口最小值之和。

样例

输入

6 3
4 6 1 2 5 3
2 5 2
2 4 1
1 6 6

输出

4
9
1

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制 子任务依赖
11 66 n,q300n, q \leq 300
22 1212 n,q4000n, q \leq 4000 11
33 88 n,q10000n, q \leq 10000 1,21, 2
44 1111 n4000n \leq 4000
55 1010 所有查询的 kik_i 相同
66 1414 ai2a_i \leq 2
77 77 ai20a_i \leq 20 66
88 1515 所有查询 li=1, ri=nl_i = 1,\ r_i = n
99 1717 无附加限制 181 \sim 8