该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
对于一个序列 A 和正整数 k,定义 f(A,k) 为下面算法的输出:
算法流程
- 初始化空序列 T,计数器 m=0。
- 遍历 i=1,2,⋯,∣A∣:
- 重复执行以下操作,直到 T 为空或者 AT∣T∣<Ai:
- 删除 T 的末尾元素 T∣T∣。
- 重复执行以下操作,直到 T 为空或者 T1>i−k:
- 向 T 的末尾加入 i。
- m←m+∣T∣。
- 输出 m 的值。
给定一个序列 X=[X1,X2,⋯,Xn]。
现在有 q 次询问,第 i 次给定 li,ri,ki,请求出 f([Xli,Xli+1,⋯,Xri],ki) 的值。
输入格式
第一行 2 个整数 n,q。
第二行 n 个整数 X1,X2,⋯.Xn。
接下来 q 行,第 i 行 3 个整数 li,ri,ki。
输出格式
设第 i 次询问的答案为 fi。
由于一些特别的原因,请输出 i=1⨁n(i2+fi) 的值。
样例
4 2
4 1 3 2
1 2 1
1 4 4
9
说明/提示
对于 100% 的数据:
- 1≤n,q≤2×105;
- X 为 1∼n 的排列;
- 1≤li≤ri≤n,1≤ki≤n。
本题开启捆绑测试。
- Subtask #1(10 pts):n,q≤3000。
- Subtask #2(5 pts):ki=1。
- Subtask #3(5 pts):ki=2。
- Subtask #4(5 pts):Xi=i。
- Subtask #5(5 pts):Xi=n−i+1。
- Subtask #6(10 pts):n≤3000。
- Subtask #7(15 pts):每次询问 ri=n。
- Subtask #8(15 pts):ki≥ri−li+1。
- Subtask #9(10 pts):∣Xi−i∣≤3。
- Subtask #10(20 pts):无特殊限制。