Problem Description

There is an array with n elements a1, a2, ..., an and the number x.

In one operation you can select some i (1 ≤ i ≤ n) and replace element ai with ai & x, where & denotes the bitwise and operation.

You want the array to have at least two equal elements after applying some operations (possibly, none). In other words, there should be at least two distinct indices i ≠ j such that ai = aj. Determine whether it is possible to achieve and, if possible, the minimal number of operations to apply.

Input

The first line contains integers n and x (2 ≤ n ≤ 100 000, 1 ≤ x ≤ 100 000), number of elements in the array and the number to and with.

The second line contains n integers ai (1 ≤ ai ≤ 100 000), the elements of the array.

Output

Print a single integer denoting the minimal number of operations to do, or -1, if it is impossible.

Examples

Input

4 3
1 2 3 7

Output

1

Input

2 228
1 1

Output

0

Input

3 7
1 2 3

Output

-1

题意:给出两个数 n 与 x,以及长度为 n 的一个数组 a[n],现在问数组中是否有相同的元素,如果有输出0,如果没有则进行 a[i] & x 操作,然后与原数组相比,如果有相同的元素,就输出1,如果还是没有,就看是否存在一个数操作完后与这个数相等,如果存在就输出2,否则,输出-1

思路:

读题读的螺旋升天。。。看着挺难其实就是一个模拟水题。。。

先比较原数组,看是否有相同的元素,如果有直接输出0

再进行 a[i] & x 操作,将操作后的数全部记录下来,与原来的数组进行比较,看是否有相同的,如果有,就输出1

如果还是没有,就用这个数操作完之后的数在新的数组中寻找相同的数,如果能找到,就输出2

如果以上三步操作后均没有,就输出-1

Source Program

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<set>
#include<map>
#include<stack>
#include<ctime>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 200001
#define MOD 1e9+7
#define E 1e-6
#define LL long long
using namespace std;
int a[N];
int b[N];
int main()
{int n,x;cin>>n>>x;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);for(int i=1;i<=n-1;i++)//原数组寻找相同元素{if(a[i]==a[i+1]){cout<<0<<endl;return 0;}}for(int i=1;i<=n;i++)//存储新数组b[i]=a[i]&x;for(int i=1;i<=n;i++)//在新数组中寻找与原数组相同的元素{for(int j=1;j<=n;j++){if(b[i]==a[j]&&i!=j){cout<<1<<endl;return 0;}}}sort(b+1,b+n+1);for(int i=1;i<=n-1;i++)//在新数组寻找相同元素{if(b[i]==b[i+1]){cout<<2<<endl;return 0;}}cout<<-1<<endl;return 0;
}

And(CF-1013B)相关推荐

  1. 【解题报告】随便练练二(CF 2300)

    [解题报告]随便练练二(CF 2300) A:Antimatter | CF383D 题意 思路 :DP 代码 B:Physical Education Lessons | CF915E 题意 思路一 ...

  2. Commentator problem(CF 2)

    题目链接 题目大意: 给定三个圆,询问是否存在点满足该点与三个圆夹角均相等,若存在多组解返回夹角最大值. 圆外一点到两圆夹角均相等: 即 sina = sinb = r1 / d1 = r2 / d2 ...

  3. D. Make a Power of Two(cf#739DIV3)

    D. Make a Power of Two 链接: link. 题意: 找出将数字转换为 2 的任意幂的最小移动次数. 题解: 先将2的xxx次幂的结果以字符串形式保存,输入字符串nnn后,因为存在 ...

  4. Web of Lies(CF 1548A)

    这是今天在打个人赛时碰见的一道题,是一道半图论半思维的题. Web of Lies 题目大意不难理解,在这里只需要注意一些细节.在加边时,只有当cnt[min]的值为1时答案才应该减1,而不是当cnt ...

  5. Magic Powder - 2 (CF 670_D)

    http://codeforces.com/problemset/problem/670/D2 The term of this problem is the same as the previous ...

  6. 【解题报告】博弈专场 (CF 2000~2200)前五题

    [解题报告]博弈专场 (CF 2000+)前五题 A:Fox and Card Game | CF388C 题意 思路 代码 B:Berzerk | CF786A 题意 思路 代码 C:Ithea P ...

  7. 软件设计师提纲+复习资料整理(上午题)

    文章目录 软件设计师考试大纲 上午题(选择题) 一.计算机组成原理 考点:CPU结构组成 考点:原码.反码.补码定点整数范围 考点:浮点数表示 考点:RISC和CISC计算机的区别 考点:奇校验与偶校 ...

  8. c性能大容量cket_5千左右预算,既轻薄(高颜值)又高性能的笔记本推荐(畅玩LOL、CF、DNF、流放之路、梦幻西游)...

    在目前笔记本制造技术中,轻薄和性能二者不可兼得,轻薄的本性能不高,高性能的太厚重, 这里推荐一些既轻薄,外观好看,同时又高性能的轻薄本. 很多轻薄本多为低压U+集成显卡,性能太弱,都不适合玩大型3D网 ...

  9. 基于矩阵分解的CF算法实现(一):(Funk SVD)LFM

    基于矩阵分解的CF算法实现(一):LFM LFM也就是前面提到的Funk SVD矩阵分解 LFM原理解析 LFM(latent factor model)隐语义模型核心思想是通过隐含特征联系用户和物品 ...

  10. 2021.5.10(cf)

    1.cf D. Maximum Sum of Products https://codeforces.com/contest/1519/problem/D 大意:给定一个数字n代表序列的长度,接下来n ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(十)librtmp使用介绍
  2. 【TP5.0】tp5.0实现连接多个数据库,实现类似3.2M(‘table’,'prefix_','db_config2')的CURD操作...
  3. [Zend PHP5 Cerification] Lectures -- 4. XML Web Service
  4. pythonpandas读取csv和另外一个csv进行比较_Python Pandas:比较一个列中类似值的两个csv(dataframe)的行,并返回相似的行(列)的内容...
  5. Hibernate关键字inverse和cascade
  6. (求助)即时发送异常给开发人员
  7. 容器源码解析之LinkedHashMap(九)
  8. 通俗易懂,CQRS概念浅析
  9. Red Hat Enterprise 5 server 上安装 memcached 的问题记录
  10. php类如何变为静态调用,PHP类中静态方法如何调用非静态方法?_后端开发
  11. 【spring容器启动】之bean的实例化和初始化(文末附:spring循环依赖原理)
  12. import threading线程进程
  13. 消息中间件之ActiveMQ入门
  14. 数据中台 画像标签_数据中台实战:如何通过标签平台圈出产品高价值用户?...
  15. 案例学习BlazeDS+Spring之九Company Manager
  16. [个人笔记] origin学习 入门教程
  17. mysql主键和候选键有什么区别?
  18. 你会卖掉自己的网上信息吗?大数据可能根本不属于你
  19. stm32F407中arr与psc以及pwm之间的关系
  20. 【5G核心网】5GC核心网之网元UPF

热门文章

  1. 8个应用案例告诉你,机器学习都能做什么?
  2. 8本前沿技术书,助力这届「青年人」将科幻变成现实
  3. 收藏 | 来自微软大神的机器学习秘籍!
  4. STM32之DAC例程
  5. S5PV210裸机之SD卡
  6. mysql 同一天多条记录只取第一条_MySQL面试高频100问(二)
  7. 深入线程池的问题连环炮
  8. 漫话:为什么你下载小电影的时候进度总是卡在99%就不动了?
  9. 今天我要批判技术管理者
  10. 一文看懂华为鸿蒙 OS 2.0