【组队比赛】

这是一篇关于编程竞赛的题解,描述了如何计算四个人两两组合成两队时,实力差最小的策略。通过输入四个人的CrossFire分数,程序首先对分数进行排序,然后计算最小的实力差,即两个最低分之和与两个最高分之和的差值。代码示例中使用了C++,实现了这一逻辑并考虑了结果可能为负的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接:登录—专业IT笔试面试备考平台_牛客网https://ac.nowcoder.com/acm/contest/18839/1036
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld

题目描述

Compute, Cubercsl, SuperSodaSea, Ybmj 准备组队参加 "科大讯飞" 赞助的 CrossFire 比赛。
科大讯飞股份有限公司成立于1999年,是亚太地区知名的智能语音和人工智能上市企业。自成立以来,长期从事语音及语言、自然语言理解、机器学习推理及自主学习等核心技术研究并保持了国际前沿技术水平;积极推动人工智能产品研发和行业应用落地,致力让机器"能听会说,能理解会思考",用人工智能建设美好世界。
这场比赛需要两人一队组队参加,他们不知道怎么分组。已知他们的 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

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[4];
    for(int i=0;i<=3;i++)
    {
        cin>>a[i];
    }
    sort(a,a+4);
    int s=a[0]-a[1]+a[3]-a[2];
    cout<<(s>0?s:-s);//考虑最后s是否为正数,如果s是负数需要处理输出正数
    return 0;
}

 题解:

题目给出四个数据,存入数组排序过后,可以肯定前两个数相减与后两个数相减得到的差是最小的,但是最后需要考虑结果的正负,才可以得到正确答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值