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;
}