Problem:
A: チーム分け

問題文

今年の KUPC はチームで参加できることを聞きつけたあなたは、友達に声をかけてチームで出場することにしました。

最終的に、あなたを含めて $4$ 人が集まりました。

個人の強さはレーティングで表され、$4$ 人のレーティングはそれぞれ $a$, $b$, $c$, $d$ です。

あなたたちは $2$ 人ずつの $2$ チームに分かれることにしました。

このとき、チームの強さはそのチームを構成する $2$ 人のレーティングの和で定義されます。
また、チーム間の実力差はそれぞれのチームの強さの差の絶対値で定義されます。

あなたはチーム間の実力差ができるだけ小さくなるようにチーム分けを行いたいです。

うまくチーム分けを行ったときの、チーム間の実力差の最小値を求めてください。

制約

$1 \leq a, b, c, d \leq 2799$

入力はすべて整数である

入力

入力は以下の形式で標準入力から与えられる。

$a$ $b$ $c$ $d$

出力

チーム間の実力差の最小値を整数 $1$ 行で出力せよ。

入力例 1

2 1 3 4

出力例 1

0

$1$ 人目と $3$ 人目、$2$ 人目と $4$ 人目でチームを組むと、チームの強さは共に $5$ となり、実力差は $0$ となります。
明らかにこれが最小です。

入力例 2

64 224 239 1024

出力例 2

625

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using static System.Math;

public static class P
{
    public static void Main()
    {
        var abcd = Console.ReadLine().Split().Select(int.Parse).ToArray();
        var sum = abcd.Sum();
        var min = int.MaxValue;
        for (int i = 0; i < abcd.Length; i++)
        {
            for (int j = i + 1; j < abcd.Length; j++)
            {
                var a = abcd[i] + abcd[j];
                var b = sum - a;
                min = Min(min, Abs(a - b));
            }
        }
        Console.WriteLine(min);
    }
}