Submission

Status:

P-PP-P---P

Subtask/Task Score:

50/100

Score: 50

User: peilin

Problemset: ประลอง

Language: c

Time: 0.002 second

Submitted On: 2025-10-12 15:51:21

#include <stdio.h>
#include <stdlib.h>

int a[100], n, bestMask;
int abs(int x) { return x < 0 ? -x : x; }

int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) scanf("%d", &a[i]);

    int total = 0;
    for (int i = 0; i < n; i++) total += a[i];

    int half1 = n / 2;
    int bestDiff = 1e9;
    int limit = 1 << n;

    for (int mask = 0; mask < limit; mask++) {
        int count = 0, sum = 0;
        for (int i = 0; i < n; i++) {
            if (mask & (1 << i)) {
                count++;
                sum += a[i];
            }
        }
        if (count == half1 || count == n - half1) {
            int diff = abs(total - 2 * sum);
            if (diff < bestDiff) {
                bestDiff = diff;
                bestMask = mask;
            }
        }
    }

    for (int i = 0; i < n; i++) {
        if (bestMask & (1 << i)) printf("%d ", a[i]);
    }
    printf("\n");
    for (int i = 0; i < n; i++) {
        if (!(bestMask & (1 << i))) printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}