CF1257F.Make Them Similar
提高+/省选-
通过率:0%
时间限制:4.00s
内存限制:1024MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Let's call two numbers similar if their binary representations contain the same number of digits equal to 1. For example:
- 2 and 4 are similar (binary representations are 10 and 100);
- 1337 and 4213 are similar (binary representations are 10100111001 and 1000001110101);
- 3 and 2 are not similar (binary representations are 11 and 10);
- 42 and 13 are similar (binary representations are 101010 and 1101).
You are given an array of n integers a1, a2, ..., an. You may choose a non-negative integer x, and then get another array of n integers b1, b2, ..., bn, where bi=ai⊕x (⊕ denotes bitwise XOR).
Is it possible to obtain an array b where all numbers are similar to each other?
我们称两个数是“相似的”,如果它们的二进制表示中数字 1 的个数相同。例如:
- 2 和 4 是相似的(二进制表示分别为 10 和 100);
- 1337 和 4213 是相似的(二进制表示分别为 10100111001 和 1000001110101);
- 3 和 2 不相似(二进制表示分别为 11 和 10);
- 42 和 13 是相似的(二进制表示分别为 101010 和 1101)。
给定一个包含 n 个整数的数组 a1, a2, ..., an。你可以选择一个非负整数 x,从而得到另一个包含 n 个整数的数组 b1, b2, ..., bn,其中 bi=ai⊕x(⊕ 表示按位异或运算)。
是否可能得到一个数组 b,使得其中所有数字两两相似?
输入格式
The first line contains one integer n (2≤n≤100).
The second line contains n integers a1, a2, ..., an (0≤ai≤230−1).
第一行包含一个整数 n(2≤n≤100)。
第二行包含 n 个整数 a1、a2、...、an(0≤ai≤230−1)。
输出格式
If it is impossible to choose x so that all elements in the resulting array are similar to each other, print one integer −1.
Otherwise, print any non-negative integer not exceeding 230−1 that can be used as x so that all elements in the resulting array are similar.
如果无法选择 x,使得结果数组中的所有元素彼此相似,则输出一个整数 −1。
否则,输出任意一个不超过 230−1 的非负整数作为 x,使得结果数组中的所有元素彼此相似。
输入输出样例
输入#1
2 7 2
输出#1
1
输入#2
4 3 17 6 0
输出#2
5
输入#3
3 1 2 3
输出#3
-1
输入#4
3 43 12 12
输出#4
1073709057
输入解题思路,AI测评打分。不知道怎么写?