苏州做物流网站电话,哪家可以做网站,wordpress怎么建设网站,哪公司建设网站题目描述
哥哥弟弟分一堆积木#xff0c;每块积木重量不同。弟弟要求平分两组#xff0c;每组数量可以不同但总重量必须相等。 然而弟弟只会二进制并且加法不进位。例如三块积木 3,5,6 分成两组 [3] 和 [5,6] 弟弟认为 5#xff08;二进制1001#xff09;加上6#xff08… 题目描述
哥哥弟弟分一堆积木每块积木重量不同。弟弟要求平分两组每组数量可以不同但总重量必须相等。 然而弟弟只会二进制并且加法不进位。例如三块积木 3,5,6 分成两组 [3] 和 [5,6] 弟弟认为 5二进制1001加上6二进制1010是0011 1001 1010 ------- 0011 然后 3 的二进制也是 0011所以弟弟认为两组积木等重接受这种分配方案。哥哥实际能分到 5611 块积木。 要求输出哥哥能拿的最大实际重量。如果给定的积木没法按弟弟视角分成重量相等的两组就输出‘NO’。
示例一
输入
5,6,3
输出
11
代码实现
# coding:utf-8
# 分积木/分苹果
# https://zhuanlan.zhihu.com/p/521401344?utm_id0
# https://www.nowcoder.com/discuss/353159159166214144class Solution:def allocateBlock(self, s):aweight 0s list(map(int, s))for i in range(len(s)):aweight aweight ^ s[i]if aweight 0:s.sort(reverseTrue)s.pop()return sum(s)return -1if __name__ __main__:s list(input(input:).split( ))solution Solution()print(solution.allocateBlock(s))