首页 > 试题广场 >

按位或

[编程题]按位或
  • 热度指数:1595 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小易有一个初始为空的数字集合,支持两种操作:
1、加入数字x到集合中。
2、询问集合中是否存在一个子集,满足子集中所有数字的Or值恰好为k。
Or为二进制按位或操作,C++中表示为"|"。
小易希望你能解决这个问题。

输入描述:
第一行数字q,表示操作个数 
接下来q行,每行两个数字:
1 x表示插入数字x
2 x表示询问数字x(即题设中询问的数值k)
,


输出描述:
对于每个询问,输出"YES"或者"NO"表示是否存在。
示例1

输入

9
1 4
2 5
1 9
1 15
2 4
1 11
2 10
2 7
2 9

输出

NO
YES
NO
NO
YES