题目描述

Compute, Cubercsl, SuperSodaSea, Ybmj 准备组队参加 "科大讯飞" 赞助的 CrossFire 比赛。
科大讯飞股份有限公司成立于1999年,是亚太地区知名的智能语音和人工智能上市企业。自成立以来,长期从事语音及语言、自然语言理解、机器学习推理及自主学习等核心技术研究并保持了国际前沿技术水平;积极推动人工智能产品研发和行业应用落地,致力让机器"能听会说,能理解会思考",用人工智能建设美好世界。
这场比赛需要两人一队组队参加,他们不知道怎么分组。已知他们的 CrossFire 分数分别为 a, b, c, d,现在想要把他们两两分为一队,使得他们的实力比较平均,也就是两队的实力差尽量小。
这里定义两队的实力差为每队的 CrossFire 分数之和的差值,现在他们想要知道这个实力差最小是多少。

输入描述:

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

输出描述:

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

输入

2 1 3 4

输出

0
示例2

输入

2263 2110 2172 2109

输出

90


答案:
#include<stdio.h>
int main(){
    int a,b,c,d;
    int tmp;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if(a>b){
        tmp=a;
        a=b;
        b=tmp;
    }
    if(a>c){
        tmp=a;
        a=c;
        c=tmp;
    }
    if(a>d){
        tmp=a;
        a=d;
        d=tmp;
    }
    if(b>c){
        tmp=b;
        b=c;
        c=tmp;
    }
    if(b>d){
        tmp=b;
        b=d;
        d=tmp;
    }
    if(c>d){
        tmp=c;
        c=d;
        d=tmp;
    }
    int s;
    s=a+d-b-c;
    if(s>=0){
        printf("%d",s);
    }else printf("%d",-s);
    return 0;

}

注意:比较n个数的大小。用if函数+tmp收纳,进行循环。

(感觉会有更简便的方法,但目前的知识储备还不够捏。。。)