#P7250. [2019年雅礼]Arithmetic

    ID: 7084 传统题 2000ms 512MiB 尝试: 2 已通过: 2 难度: 8 上传者: 标签>CF2500数据结构线段树单调栈数学排序扫描线

[2019年雅礼]Arithmetic

Arithmetic

时间限制: 2s
空间限制: 512M

Description

对于一个整数序列 AA,你可以进行两种操作:

  • 在序列任意位置插入一个任意值的元素,花费为 1;
  • 交换序列中任意两个元素的值,花费为 0。

对于给定的常数 dd,定义 f(A)f(A) 为将 AA 变为一个公差为 dd 的等差数列所需的最小花费。特别地,若无论怎样操作都无法变为一个公差为 dd 的等差序列,定义 f(A)=0f(A) = 0

现在给出一个长为 nn 的序列 SSqq 次询问,每次给出 l,rl, r,你需要回答:

i=lrj=irf(S[ij])\sum_{i=l}^{r} \sum_{j=i}^{r} f(S[i \dots j])

其中 S[ij]S[i \dots j] 表示 SS 的第 ii 个元素到第 jj 个元素构成的子串(从 1 开始标号)。

Input

第一行三个整数 n,d,qn, d, q

第二行 nn 个整数,表示 SS 序列。

接下来 qq 行,每行两个整数 l,rl, r,表示一组询问。

Output

输出 qq 行,每行一个整数表示询问答案。

Sample

Input

6 2 3
6 4 2 8 8 1
1 2
2 4
1 6

Output

0
3
3

Explanation

f({2,8})=2,f({4,2,8})=1f(\{2, 8\}) = 2, f(\{4, 2, 8\}) = 1,其余子串的 f()f() 均为 0。

Subtasks

对所有数据,保证 $0 \leq n, q \leq 3 \times 10^5, 0 \leq S_i \leq 10^7, 1 \leq d \leq 10^7$。

  • Subtask1(3%):n=q=0n = q = 0
  • Subtask2(16%):n,q50n, q \leq 50
  • Subtask3(16%):n5000n \leq 5000
  • Subtask4(19%):q=d=l=1,r=nq = d = l = 1, r = nSS 是一个随机生成的 1n1 - n 的排列;
  • Subtask5(24%):q=l=1,r=nq = l = 1, r = n
  • Subtask6(22%):没有特殊的限制。