【题目背景】
对酒当歌,人生几何!
举头望明月,……把酒问青天!
烽火连三月,……唔,……酌酒以自宽!
且不要笑话这些东拼西凑的诗词,因为古往今来,同守星空共望明月的人们本就或多或少有着相通的情思呀。
我想此时此刻,正把酒望月回望过往的 $\text{goodier}$ 也定是这般感受。
——“今月曾经照古人“,纵使有时渐行渐远,却总有些东西如同当空明月一样万古如一,会成为近乎永恒的东西。
此去一别,不知将归来还是归去。但无论如何,总归还是要踏上新的旅程,迎接新的风景。
接下来,让我们追随 $\text{goodier}$ 面对新的问题与挑战吧!唯有抬头向前才有可能盼到众望所归的那一天——那时的我们或许早已出走半生,然明月依旧,伴我而归。
【题目描述】
$\text{goodier}$ 接下来要面对的这个问题非常简洁,因此这里只有形式化题意。
给定一个长度为 $n$ 的数组 $a$,$m$ 次询问,每次给出 $l, r, x$,求数组的子区间 $a_l\dots a_r$ 中在该子区间内出现次数 不超过 $x$ 的元素有多少种。
【输入格式】
从 return.in 中读入数据。
第 $1$ 行三个整数 $n, m, k$,其中 $n,m$ 的含义同题目描述,$k$ 的含义见下文。
第 $2$ 行 $n$ 个整数表示给定的数组。
第 $3$ ~ $m+2$ 行每行三个整数 $l,r,x$ 表示一次询问,含义见题目描述。
$\ $
请注意,若 $k=1$,则每次询问给出的 $l,r$ 是加密后的结果——其真实值为该值异或上一次询问的答案,初始时上一次询问的答案为 $0$ 。否则询问给出的 $l,r$ 为真实的 $l,r$。
【输出格式】
将答案输出到 return.out 中。
$m$ 行,每行一个整数表示该次询问的结果;
【样例 1 输入】
5 3 0
1 2 1 2 1
2 4 1
1 5 1
1 5 2
【样例 1 输出】
1
0
1
题目目录下共有 4 个样例,请自行判断其所满足的测试点编号,此处省略。
【提示】
可以通过输入的 n 的后两位判断测试点编号,并且不一定存在一种算法可以通过所有数据。
本题数据量较大,建议使用快速的输入输出方式。
