Alice and Bob
题号:NC222521
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

Alice和Bob在玩游戏。
游戏一共有m轮,Alice手里有一个长度为n的序列a_i和常数K,每一轮游戏,Alice会从序列中取出一个连续区间 给Bob,问Bob这个区间中存在多少个连续子区间满足,区间中不同的数的个数不小于K。Bob全部回答正确了则Bob赢,否则是Alice赢。
现在你需要帮助Bob赢得游戏。

输入描述:

第一行,三个正整数,分别表示序列长度,游戏轮数,常数K。
接下来一行,n个整数,第i个表示
接下来m行,每行2个整数,表示加密后的L_i,R_i
还需要通过下列公式转为保证


其中Ans_i表示第i轮游戏的答案,定义表示二进制的"异或"运算。

输出描述:

总共m行,每行一个整数,表示有多少个连续子区间满足连续子区间中不同的数的个数不小于K。
示例1

输入

复制
6 3 3
1 2 1 3 2 1
0 5
11 9
2 5

输出

复制
9
0
3