cf组队比赛最小分差问题

以下为原问题描述(摘自牛客网):
已知他们的 CrossFire 分数分别为 a, b, c, d,现在想要把他们两两分为一队,使得两队的实力差尽量小。这里定义两队的实力差为每队的 CrossFire 分数之和的差值,现在他们想要知道这个实力差最小是多少。
输入:
仅一行,包含四个整数 a, b, c, d 。中间以空格分隔,
输出:
分别表示四个人的 CrossFire 分数。在一行输出一个整数,表示两个队伍实力差的最小值。

我的底层逻辑是四个数中最大和最小的数字之和减去中间两数之和就是其最小分差。
以下是我的代码:

#include

int main()
{
    int a[10];
    int i;
    for(i=0; i<4; i++)
        scanf("%d", &a[i]);
    int max, min, note1, note2;
    max = a[0];
    min = a[0];
    for(i=0; i<4; i++)
    {
        if(max < a[i])
        {
           max = a[i];
           note1 = i;
        }
        if(min > a[i])
        {
           min = a[i];
           note2 = i;    
        }
    }
    int j, dif[10], MAX;
    for(i=0; i<4; i++)
    {
        for(j=0; j<4; j++)
        {
            dif[i] = a[note1] + a[note2] - (a[i]+a[j]);
        }
        MAX = dif[0];
        if(MAX < dif[i])
           MAX = dif[i];
    }
    printf("%d", MAX);

    return 0;
}

但是在自测输入时显示正确率很低,请大家帮我看看问题出在哪儿,并给予修改建议。

note1和note2也要初始化为0才行。
MAX计算也有问题,你在输入四个数的时候,就将四个数的总和计算出来,然后总和减去max和min就是另外两个数之和啦。最后将max+min-另外两个数之和,它的绝对值就是最小差值