题目描述
A、B两个人把苹果分为两堆,A希望按照他的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算进位 12+5=9(1100 + 0101 = 9),B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多。
输入苹果的数量和每个苹果重量,输出满足A的情况下B获取的苹果总重量。
如果无法满足A的要求,输出-1。
数据范围
- 1 <= 总苹果数量 <= 20000
- 1 <= 每个苹果重量 <= 10000
输入描述
输入第一行是苹果数量:3
输入第二行是每个苹果重量:3 5 6
输出描述
输出第一行是B获取的苹果总重量:11
用例1
输入
3
3 5 6
输出
11
用例2
输入
8
7258 6579 2602 6716 3050 3564 5396 1773
输出
35165
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = Integer.valueOf(in.nextLine());
int[] nums = Arrays.stream(in.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int minNum = Integer.MAX_VALUE;
int result = 0;
int sum = 0;
for(int num: nums){
result = result ^ num;
if(num < minNum){
minNum = num;
}
sum = sum + num;
}
if(result == 0){
System.out.println(sum - minNum);
}else{
System.out.println(-1);
}
}
}