305354: CF1013B. And
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
And
题意翻译
给定一个长度为 $n(n\le 100000)$ 的序列 $a_i(a_i\le 100000)$ ,并给定一个数 $x(x\le 100000)$ 。 每一步可以将序列中的一个数与上 $x$ 。 求最少需要几步能使序列中出现两个相等的数。 如果不可能则输出 $-1$ 。 ## Input 第一行两个正整数 $n, x$ 。 第二行 $n$ 个正整数 $a_i$ 。 ## Output 一个整数表示答案。题目描述
There is an array with $ n $ elements $ a_{1},a_{2},...,a_{n} $ and the number $ x $ . In one operation you can select some $ i $ ( $ 1<=i<=n $ ) and replace element $ a_{i} $ with $ a_{i}&x $ , where $ & $ denotes the [bitwise and](https://en.wikipedia.org/wiki/Bitwise_operation#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 $ a_{i}=a_{j} $ . Determine whether it is possible to achieve and, if possible, the minimal number of operations to apply.输入输出格式
输入格式
The first line contains integers $ n $ and $ x $ ( $ 2<=n<=100000 $ , $ 1<=x<=100000 $ ), number of elements in the array and the number to and with. The second line contains $ n $ integers $ a_{i} $ ( $ 1<=a_{i}<=100000 $ ), the elements of the array.
输出格式
Print a single integer denoting the minimal number of operations to do, or -1, if it is impossible.
输入输出样例
输入样例 #1
4 3
1 2 3 7
输出样例 #1
1
输入样例 #2
2 228
1 1
输出样例 #2
0
输入样例 #3
3 7
1 2 3
输出样例 #3
-1