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:14
#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;
}