华为OD机试真题-游戏分组-2023年OD统一考试(C卷)
2023-12-14 17:53:11
题目描述:
部门准备举办一场王者荣耀表演赛,有10名游戏爱好者参与,分为两队,每队5人。每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把10名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队5名队员的评分总和。
现在给你10名参与者的游戏水平评分,请你根据上述要求分队,最后输出这两组的实力差绝对值。
例:10名参赛者的评分分别为5 1 8 3 4 6 7 10 9 2,分组为(1 3 5 8 10)(2 4? 6 7 9),两组实力差最小,差值为1。有多种分法,但实力差的绝对值最小为1。
输入描述:
10个整数,表示10名参与者的游戏水平评分。范围在[1, 10000]之间
输出描述:
1个整数,表示分组后两组实力差绝对值的最小值。
示例1
输入:
1 2 3 4 5 6 7 8 9 10输出:
1说明:
10名队员分成两组,两组实力差绝对值最小为1。
a=list(map(int,input().split()))
ans=abs(sum(a[:5])-sum(a[5:]))
for i in range(1<<10):
cnt=[0,0]
val=[0,0]
for j in range(10):
cnt[(i>>j)&1]+=1
val[(i>>j)&1]+=a[j]
if cnt[0]==cnt[1]:
ans=min(ans,abs(val[0]-val[1]))
print(ans)
文章来源:https://blog.csdn.net/2301_76848549/article/details/134998250
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!