Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: colo39
Problemset: ประลอง
Language: cpp
Time: 0.005 second
Submitted On: 2026-10-03 16:42:18
#include <bits/stdc++.h>
using namespace std;
int small;
int sum;
int a[105];
int dat[105];
int n;
int min_dif = 2e9;
int best_rs[105];
int rs[105];
void sol(int now, int start_idx) {
if (now == small+1) {
int kuy = 0;
for (int i = 1;i <= small;i++) {
rs[i] = dat[a[i]];
kuy += dat[a[i]];
}
if (abs(kuy - (sum - kuy)) < min_dif) {
min_dif = abs(kuy - (sum - kuy));
memset(best_rs, 0,sizeof(best_rs));
for (int i = 1;i <= small;i++) {
best_rs[i] = rs[i];
}
}
return;
}
for (int i = start_idx;i <= n;i++) {
a[now] = i;
sol(now+1,i + 1);
}
}
int main () {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 1;i <= n;i++) {
int k;
cin >> k;
dat[i] = k;
sum +=k;
}
if (n %2 == 0) small = n/2;
else small = (n-1)/2;;
sol(1,1);
string s = " ";
for (int i = 1;i <= small;i++) {
cout << best_rs[i] << " ";
}
}