#310. 姬哥做水题

传统 1000 ms 256 MiB
标准 IO
文本比较 vvvb 标签

题目描述

这一天,姬哥正在补题,他看到了这样一个题:

给定一个正整数序列 ai(1in,1n1000000,1ai1018)a_i(1\leq i\leq n,1\leq n\leq 1000000,1\leq a_i\leq 10^{18}) 与一个整数 k(1k1018)k(1\leq k\leq 10^{18}),请问序列中是否存在两个正整数 ai,aj(ij)a_i,a_j(i\neq j) 满足 2×(ai&aj)=k(aiaj)2\times(a_i\&a_j)=k-(a_i\oplus a_j)。其中 \oplus 代表 xor(位异或)运算,&\& 代表 and(位与)运算。

姬哥直呼水题,他不屑于做这样的题,所以请你帮他解决。若序列中存在这样两个数满足条件则输出 YES,否则输出 NO

输入格式

第一行两个正整数 n,kn,k,表示序列长度以及给定的正整数。

第二行 nn 个正整数用空格分隔,表示序列 aia_i

输出格式

输出一行 YESNO,含义见题目描述。

样例

输入样例

5 10
2 3 5 5 6

输出样例

YES

样例说明

a3,a4a_3,a_4 满足条件,2×(5&5)=10(55)2\times(5\& 5)=10-(5\oplus 5)