时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
小红这天来到了三途川,发现这里有一个摆渡人,名字叫小町。
小町的职责是将一些灵魂运送到冥界。每个灵魂有一个特性,用整数

表示。但小町非常喜欢偷懒,她只想运送尽可能少的灵魂然后摸鱼。
已知当船上所有灵魂特性的 位与运算 正好等于0时,船才可以开动。小町想让小红帮忙抛弃掉尽可能多的灵魂(但不能全抛弃),这样自己才能最大限度的偷懒。请你帮小红计算出可以抛弃的灵魂的最多数量。
输入描述:
本题有多组测试数据。
第一行包含一个正整数
)
,表示数据组数。
接下来,对于每组测试数据,输入包含两行。
第一行一个正整数
,表示灵魂的数量。第二行
个整数
,表示每个灵魂的特性。 (保证所有测试数据中

的总和不超过

)。
输出描述:
对于每组测试数据,输出一行一个整数表示答案。
如果无解,请输出-1。否则输出一个整数,代表小町可以抛弃的最多灵魂数量。
示例1
输入
复制
2
5
7 3 3 2 5
5
2 14 6 30 10
说明
第一个测试数据,抛弃掉前三个灵魂,剩下的两个灵魂与运算恰好为0(2 & 5 = 0),因此船可以开动。
第二个测试数据,显然无论如何,船都是不能开动的。