Submission

Status:

---PP-P-P-

Subtask/Task Score:

40/100

Score: 40

User: mik

Problemset: ประลอง

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-11 16:59:55

#include <bits/stdc++.h>

using namespace std;

int main(){
    ios_base::sync_with_stdio(false),cin.tie(NULL);
    int n;
    int a,b,t=INT_MAX;
    cin >> n;
    vector<int> ar;
    vector<int> be_a;
    vector<int> be_b;
    
    if (n%2==0){
        a=n/2; b=n/2;
    }
    else {
        a=(n-1)/2; b=(n+1)/2;
    }
    for (int i=0;i<n;i++){
        int x;
        cin >> x;
        ar.push_back(x);
    }
    vector<bool> p(n,0);
    for (int i=1;i<pow(2,n)-1;i++){
        p.assign(p.begin(),p.end());
        int tmp = i;
        int u=0;
        int k=0;
        while(tmp){
            p[k] = tmp%2;
            if (tmp%2==1) u++;
            k++;
            if (u>a){
                break;
            }
            tmp/=2;
        }
        if (u<a || u>a) continue;
        int sm=0,sn=0;
        for (int j=0;j<n;j++){
            if (p[j]==1) sm += ar[j];
            else sn += ar[j];
        }
        if (abs(sm-sn)<t){
            be_a.clear();
            be_b.clear();
            for (int j=0;j<n;j++){
                if (p[j]==1) be_a.push_back(ar[j]);
                else be_b.push_back(ar[j]);
            }
        }
        t = min(abs(sm-sn),t);
    }
    if (n%2==0){
        for (int i=0;i<b;i++){
            cout << be_b[i] << ' ';
        }
        cout << '\n';
        for (int i=0;i<a;i++){
            cout << be_a[i] << ' ';
        }
    }
    else {
        for (int i=0;i<a;i++){
            cout << be_a[i] << ' ';
        }
        cout << '\n';
        for (int i=0;i<b;i++){
            cout << be_b[i] << ' ';
        }
    }
    return 0;
}