题目描述
考虑一个数字数组 b1,…,bm。该数组上长度为 k(k≤m)的滑动窗口是指所有长度为 k 的子段,即 {b1,…,bk}, {b2,…,bk+1}, …, {bm−k+1,…,bm}。
给定一个长度为 n 的数字数组 a1,…,an。回答关于该数组的 q 个查询,查询形式如下:对于给定的 l、r、k,找出子段 {al,…,ar} 上所有长度为 k 的滑动窗口的最小值之和。
输入格式
输入的第一行包含两个整数 n 和 q(1≤n,q≤100000)—— 数组的长度和查询的数量。
第二行包含 n 个整数 a1,…,an(1≤ai≤109)—— 数组中数字的值。
接下来的 q 行包含查询。第 i 行给出三个整数 li、ri 和 ki(1≤l≤r≤n,1≤k≤r−l+1)—— 第 i 个查询的子段左右边界以及滑动窗口的长度。
输出格式
输出 q 行,每行包含对应查询的答案。第 i 行输出一个数字 —— 子段 {ali,…,ari} 上所有长度为 ki 的滑动窗口的最小值之和。
6 3
4 6 1 2 5 3
2 5 2
2 4 1
1 6 6
4
9
1
提示
| 子任务 |
分值 |
额外限制 |
依赖子任务 |
| 1 |
6 |
n,q≤300 |
|
| 2 |
12 |
n,q≤4000 |
1 |
| 3 |
8 |
n,q≤10000 |
1–2 |
| 4 |
11 |
n≤4000 |
| 5 |
10 |
所有查询中的 ki 相等 |
|
| 6 |
14 |
ai≤2 |
| 7 |
ai≤20 |
6 |
| 8 |
15 |
li=1,ri=n |
|
| 9 |
17 |
无额外限制 |
1–8 |