赞
踩
■ 题目描述
篮球(5V5)比赛中,每个球员拥有一个战斗力,每个队伍的所有球员战斗力之和为该队伍的总体战斗力。
现有10个球员准备分为两队进行训练赛,教练希望2个队伍的战斗力差值能够尽可能的小,以达到最佳训练效果。
给出10个球员的战斗力,如果你是教练,你该如何分队,才能达到最佳训练效果?请说出该分队方案下的最小战斗力差值。
输入描述:
10个篮球队员的战斗力(整数,范围[1,10000]),战斗力之间用空格分隔,如:10987654321
不需要考虑异常输入的场景。
输出描述:
最小的战斗力差值,如:1
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
10 9 8 7 6 5 4 3 2 1
输出
1
import itertools # ns = '10 9 8 7 6 5 4 3 2 1' ns = '11 9 10 20 1 5 4 33 2 1' if __name__ == '__main__': # 如果题目直接给出数字,用这条就可以 # candidates = [11,9,1,2,50,5,4,3,2,1] #如果输入给的是字符串,需要自己处理一下 candidates=list(map(int,ns.split())) res = [] for i in itertools.combinations(candidates,5): ans = abs(sum(candidates)-sum(i)-sum(i)) res.append(ans) print(min(res))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。