灵璧哪有做网站的,建站工具介绍,合肥广告牌制作公司,绵阳做网站的【华为OD】【统一考试C卷真题】100%通过#xff1a;剩余银饰的重量 python 源码实现
目录
题目描述#xff1a;
示例1
示例2
代码实现#xff1a; 题目描述#xff1a;
有N块二手市场收集的银饰#xff0c;每块银饰的重量都是正整数#xff0c;收集到的银饰会被熔…【华为OD】【统一考试C卷真题】100%通过剩余银饰的重量 python 源码实现
目录
题目描述
示例1
示例2
代码实现 题目描述
有N块二手市场收集的银饰每块银饰的重量都是正整数收集到的银饰会被熔化用于打造新的饰品。 每一回合从中选出三块 最重的 银饰然后一起熔掉。假设银饰的重量分别为 x 、y和z且 x y z。那么熔掉的可能结果如下 如果 x y z那么三块银饰都会被完全熔掉 如果 x y 且 y ! z会剩余重量为 z - y 的银块无法被熔掉 如果 x ! y 且 y z会剩余重量为 y - x 的银块无法被熔掉 如果 x ! y 且 y ! z会剩余重量为 z - y 与 y - x 差值 的银块无法被熔掉。 最后如果剩余两块返回较大的重量若两块重量相同返回任意一块皆可如果只剩下一块返回该块的重量如果没有剩下就返回 0。
输入描述
输入数据为两行
第一行为银饰数组长度n1 ≤ n ≤ 40
第二行为n块银饰的重量重量的取值范围为[12000]重量之间使用空格隔开
输出描述
如果剩余两块返回较大的重量若两块重量相同返回任意一块皆可如果只剩下一块返回该块的重量如果没有剩下就返回 0。
示例1
输入输出示例仅供调试后台判题数据一般不包含示例
输入 3 1 1 1 输出 0 说明
选出1 1 1得到 0最终数组转换为 []最后没有剩下银块返回0
示例2
输入输出示例仅供调试后台判题数据一般不包含示例
输入 3 3 7 10 输出 1 说明 选出 3 7 10需要计算 (7-3) 和 (10-7) 的差值即(7-3)-(10-7)1所以数组转换为 [1]剩余一块返回该块重量返回1 代码实现
if __name__ __main__:n int(input())my_values [int(i) for i in (input()).split()]if len(my_values) 0:print(0)elif len(my_values) 2:print(my_values[1]if my_values[0] my_values[1] else my_values[0])elif len(my_values) 1:print(my_values[0])else:while True:my_values.sort(reverseTrue)a_list []tmp my_values[0:3]if tmp[0] tmp[1] and tmp[1] tmp[2]:pass;elif tmp[0] tmp[1] and tmp[1] ! tmp[2]:a_list.append(abs(tmp[2] - tmp[0]))elif tmp[0] ! tmp[1] and tmp[1] tmp[2]:a_list.append(abs(tmp[1] - tmp[0]))elif tmp[0] ! tmp[1] and tmp[1] ! tmp[2]:a_list.append(abs(abs(tmp[2] - tmp[1]) - abs(tmp[1] - tmp[0])))my_values a_list my_values[3:]if len(my_values) 2:breakif len(my_values) 0:print(0)elif len(my_values) 2:print(my_values[1]if my_values[0] my_values[1] else my_values[0])elif len(my_values) 1:print(my_values[0])