Submission
Status:
---P--P---
Subtask/Task Score:
20/100
Score: 20
User: Nuttykub
Problemset: ประลอง
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-04 21:26:09
#include <bits/stdc++.h>
using namespace std;
int a[100];
bool team[100];
bool bestTeam[100];
int n;
int total;
int bestDiff = 999999999;
void solve(int index, int count, int sum1){
if (count == n/2) {
int sum2 = total - sum1;
int diff = abs(sum1 - sum2);
if (diff < bestDiff){
bestDiff = diff;
for (int i = 0; i < n; i++) bestTeam[i] = team[i];
}
return;
}
if (index == n) return;
team[index] = true;
solve(index+1,count+1,sum1+a[index]);
team[index] = false;
solve(index + 1,count,sum1);
}
int main(){
cin >> n;
total = 0;
for (int i = 0; i < n; i++){
cin >> a[i];
total += a[i];
}
solve(0, 0, 0);
for (int i = 0; i < n; i++) {
if (bestTeam[i]) cout << a[i] << " ";
}
cout << endl;
for (int i = 0; i < n; i++){
if (!bestTeam[i]) cout << a[i] << " ";
}
cout << endl;
return 0;
}