Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Bestzu

Problemset: ประลอง

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-15 14:06:44

#include <bits/stdc++.h>
#define endl '\n'
#define ll long long int
using namespace std;


const int N = 110;
int n;
vector<int> arr(N), a, b;
int bestdiff = INT_MAX;
vector<int> ansa, ansb;
void solve(int idx, vector<int> &a, vector<int> &b, int suma, int sumb) {
    if(idx == n) {
//        if( (a.size() == n/2 && b.size() == n/2) || (a.size() == n/2+1 && b.size() == n/2)) {
            int diff = abs(suma - sumb);
            if(diff < bestdiff) {
                bestdiff = diff;
                ansa = a;
                ansb = b;
            }
//        }
        return;
    }

    if(a.size() < (n+1)/2) { 
        a.push_back(arr[idx]);
        solve(idx+1, a, b, suma + arr[idx], sumb);
        a.pop_back();
    }

    if(b.size() < n/2) { 
        b.push_back(arr[idx]);
        solve(idx+1, a, b, suma, sumb + arr[idx]);
        b.pop_back();
    }
}



int main() {
    ios::sync_with_stdio(false); cin.tie(0);

    
    cin >> n;
    for(int i = 0; i < n; i++) {
    	cin >> arr[i];
	}
	
	solve(0, a, b, 0, 0);
    
	for(auto &e : ansb) {
		cout << e << " ";
	}
	cout << endl;
    for(auto &e : ansa) {
    	cout << e << " ";
	}
    
    return 0;
}