Submission
Status:
P-PP-PP--P
Subtask/Task Score:
60/100
Score: 60
User: angpangSK
Problemset: ประลอง
Language: c
Time: 0.002 second
Submitted On: 2025-09-25 08:00:04
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
int a[20];
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
int k = n / 2;
int total = 0;
for (int i = 0; i < n; i++)
total += a[i];
int best_mask = 0, best_diff = 1e9;
for (int mask = 0; mask < (1 << n); mask++) {
if (__builtin_popcount(mask) == k) {
int sum = 0;
for (int i = 0; i < n; i++)
if (mask & (1 << i))
sum += a[i];
int diff = abs(total - 2 * sum);
if (diff < best_diff) {
best_diff = diff;
best_mask = mask;
}
}
}
int first = 1;
for (int i = 0; i < n; i++)
if (best_mask & (1 << i)) {
if (!first) printf(" ");
printf("%d", a[i]);
first = 0;
}
printf("\n");
first = 1;
for (int i = 0; i < n; i++)
if (!(best_mask & (1 << i))) {
if (!first) printf(" ");
printf("%d", a[i]);
first = 0;
}
printf("\n");
return 0;
}