주사위 네개 문제에서 조건에 맞게 코드를 짰으나

Result는 Wrong Answer라고 합니다. 


어떻게 해결해야 하는지 알려 주시면 감사하겠습니다. 

다음은 제가 작성한 코드입니다.


#include <stdio.h>


int equal(int, int, int, int);

int max(int, int);

int main() {

    int a, b, c, d, N, maximum = -2147483648;

    scanf("%d", &N);

    for (int i = 0; i < N; i++) {

        scanf("%d %d %d %d", &a, &b, &c, &d);

        maximum = max(maximum, equal(a, b, c, d));

    }

    printf("%d\n", maximum);


    return 0;

}

int equal(int a, int b, int c, int d) {

    int sum= ((a == b) + (a == c) + (a == d)

            + (b == c) + (b == d)

            + (c == d));

    if (sum == 6) {

        return 50000 + a * 5000;

    }

    if (sum == 3) {

        if (a == b || a == c || a == d) return 10000 * a + 1000;

        return 10000 + b * 1000;

    }

    if (sum == 2) {

        if (a == b) 2000 + a * 500 + c * 500;

        return 2000 + a * 500 + b * 500;

    }

    if (sum == 1) {

        if (a == b || a == c || a == d) {

            return 1000 + a * 100;

        }

        if (b == c || b == d) {

            return 1000 + b * 100;

        }

        if (c == d) {

            return 1000 + c * 100;

        }

        return 1000 + d * 100;

    }

    if (sum == 0) {

        return max(a, max(b, max(c, d))) * 100;

    }

}

int max(int a, int b) {

    return (a > b) ? (a) : (b);

}