问题1902--小C的C型子数组1

1902: 小C的C型子数组1

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

小 C 用一个正整数数组 a 和一个整数 c,发明了一种 C 型子数组。 

定义是这样的,如果把数组 a 中的所有元素进行按位或运算,得到的最终结果不小于 c,那么数组就被成为 C 型数组。 

现在有一个长度为 n 的正整数数组 nums,请你找出 nums 中最短的 C 型子数组长度,如果不存在 C 型子数组则输出 -1 。

按位或:把两个整数的十进制整数变成二进制后,对应位上的数字如果有一个 1 ,则这一位的运算结果就是 1,如果两个数在某一位上都不存在 1,则这一位为 0,最后把结果转换成十进制数。

例如:

3 和 5 按位或,3 转二进制为 11 ,5 转二进制为 101,然后进行运算得到 111。

011

101

-----

111

得到 111 为二进制数,转成十进制为 7。

输入

第一行,整数 n 和 c。 

第二行,n 个正整数,为数组 nums。

输出

一个整数,最短的 C 型子数组长度,或者 -1。

样例输入 Copy

4 6
1 2 3 4

样例输出 Copy

2

提示

样例分析: 

 整数 3 和 4 的按位或运算 3 | 4 = 7 >= c,所以最短子数组长度为 2。 


 数据范围: 

1 <= n <= 1000。 

0 <= nums[i] <= 100000。 

0 <= c <= 100000

来源/分类