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:09:24

#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() <= b.size()) {
	        int diff = abs(suma - sumb);
	        if(diff < bestdiff) {
	            bestdiff = diff;
	            ansa = a;
	            ansb = b;
	        }
	        return;
		}
    }

    if(b.size() < (n+1)/2) { 
        b.push_back(arr[idx]);
        solve(idx+1, a, b, suma, sumb + arr[idx]);
        b.pop_back();
    }
    if(a.size() < (n+1)/2) { 
        a.push_back(arr[idx]);
        solve(idx+1, a, b, suma + arr[idx], sumb);
        a.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 : ansa) {
    	cout << e << " ";
	}
	cout << endl;
	for(auto &e : ansb) {
		cout << e << " ";
	}
    
    return 0;
}