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;

}