C尝试了出题人钦定的 "签到题",发现他一点都不简单。
通过黑客后台数据,小C找到了每道题目经过加密的难度系数以及对应的解密算法,于是小C想知道出题人钦定的 "签到题"的难度究竟是多少。
关于经过加密的难度系数以及对应的解密算法:
经过加密的难度系数由一个整数n和一个长度为n的数组a组成。在解密时,你需要找到一个数x,使得x与数组a中的所有元素依次异或后最终得数为0。所得的x与n在二进制表示下对应位不同的数量即为题目的真实难度。
关于异或
异或使用符号⊕表示,在C语言中可用符号 "^" 进行运算。
非负整数x和y的异或是指对它们二进制表示中的每一位进行如下运算得到的结果:
若x和y的第k个二进制位相同,结果的第k个二进制位为0。
若x和y的第k个二进制位不同,结果的第k个二进制位为1。
例如:二进制下(110)2与(011)2进行异或,第0个二进制位不同,第1个二进制位相同,第3个二进制位不同,所以两者异或后结果为(101)2。
注意:二进制位从右向左,从0开始编号。高位缺少的二进制规定为0。
异或具有如下性质:
归零性:a ⊕ a = 0;
交换律:a ⊕ b = b ⊕ a;
结合律: (a ⊕ b) ⊕ c = a ⊕ (b ⊕ c)
n(1 ≤ n≤105),具体输入含义见题干。
第二行依次输入n个整数a1, a2, …… , an(1≤ai≤105
7 1 2 3 4 5 6 7
3