科大讯飞 CrossFire 比赛分组问题:实力差最小化

Compute, Cubercsl, SuperSodaSea, Ybmj 准备组队参加 '科大讯飞' 赞助的 CrossFire 比赛。

这场比赛需要两人一队组队参加,他们不知道怎么分组。已知他们的 CrossFire 分数分别为 a, b, c, d,现在想要把他们两两分为一队,使得他们的实力比较平均,也就是两队的实力差尽量小。

这里定义两队的实力差为每队的 CrossFire 分数之和的差值,现在他们想要知道这个实力差最小是多少。

输入描述:

仅一行,包含四个整数 a, b, c, d (1 ≤ a, b, c, d ≤ 3681),中间以空格分隔,分别表示四个人的 CrossFire 分数。

输出描述:

在一行输出一个整数,表示两个队伍实力差的最小值。

示例1

输入

2 1 3 4

输出

0

示例2

输入

2263 2110 2172 2109

输出

90

思路:

首先,将四个人的分数从小到大排序,即 a, b, c, d。

然后,将 a 和 d 分别分到两个队伍中,计算两个队伍的实力差,即 a+d 和 b+c 的差值。

最后,输出实力差的最小值。

具体实现步骤:

  1. 读取四个人的分数 a, b, c, d。
  2. 将 a, b, c, d 排序。
  3. 计算实力差的最小值,即 min(a+d-b-c, a+b-c-d, a+c-b-d)。
  4. 输出实力差的最小值。

示例代码 (Python):

a, b, c, d = map(int, input().split())

# 对分数进行排序
scores = sorted([a, b, c, d])
a, b, c, d = scores[0], scores[1], scores[2], scores[3]

# 计算实力差的最小值
min_diff = min(a + d - b - c, a + b - c - d, a + c - b - d)

# 输出结果
print(min_diff)
科大讯飞 CrossFire 比赛分组问题:实力差最小化

原文地址: https://www.cveoy.top/t/topic/RAL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录