题目描述
给定一个长度为 n 的数列 a1,a2,…,an 以及一个整数 x。
接下来有 m 次询问,每次询问给你两个整数 l 和 r,你需要回答出下标区间 [l,r] 是否存在两个元素 ai 和 aj 满足它们的异或和为 x(即判断是否存在两个下标 i 和 j 满足 l≤i<j≤r 且 ai⊕aj=x,这里 ⊕ 是异或符号)。
输入格式
第一行,三个整数 n,m,x,以空格分隔(2≤n≤105,1≤m≤105,0≤x<220)。
第二行,n 个整数 a1,a2,…,an,两两之间以一个空格分隔(0≤ai<220)。
接下来 m 行,每行包含两个整数 l 和 r,以一个空格分隔,表示一次询问(1≤l<r≤n)。
输出格式
对于每次询问,输出一行。如果下标区间 [l,r] 内不存在异或和为 x 的两个元素,输出 yes;否则,输出 no。
样例
4 4 1
1 2 3 4
1 4
1 2
2 3
3 3
yes
no
yes
no
说明/提示
数据规模与约定
- 对于 30% 的数据,n,m≤1000,x<210
- 对于 100% 的数据,n,m≤105,x<220