# solo和kolo是两兄弟,妈妈给了她们一大堆积木,,每块积木上都有自己的重量 # 现在她们想要将这些积木分为两堆,哥哥solo负责分配,弟弟kolo要求两个人获得的积木总重量相等 # 根据kolo的逻辑,个数可以不同,不然就会哭,但kolo只会先将两个数转成二进制在进行加法,而且总会忘记进位(每个进位都会忘记) # 如当25(11101)+11(1011)时,kolo得到的计算结果是18(10010):11001+01011 =10010 # solo想要尽可能让自己得到的积木总重量最大,且不让kolo哭 # 输入:让kolo不哭,输入solo所能获得的积木的最大总重量 否则输出'NO' # 输入: # 3 # 3 5 6 # 输出:11 # n = int(input()) # nums = list(map(int, input().split())) n = 3 nums = [3, 5, 6] start = nums[0] for i in range(1, n): start ^= nums[i] # ^=异或相同得0,不同得1 if start != 0: print(-1) else: print(sum(nums) - min(nums))
10.分积木----OD
最新推荐文章于 2024-10-02 21:19:40 发布
文章讲述了兄弟俩SOLo和KOLo用二进制计算分配积木的故事,SOLo的目标是最大化自己积木重量,而KOLo要求两人重量相等但不考虑进位。通过异或操作判断是否能实现平衡,若不能则输出-1,否则计算并输出SOLo的最大积木重量。
摘要由CSDN通过智能技术生成