Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: jackpapho
Problemset: ประลอง
Language: cpp
Time: 0.003 second
Submitted On: 2026-10-07 13:39:28
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,bestdiff = LLONG_MAX,suma,sumb,ind;
vector<ll> in,ansa,ansb;
void recur(vector<ll> &a,vector<ll> &b,ll suma,ll sumb,ll ind){
if (ind == n){
if (abs((ll)a.size()-(ll)b.size()) > 1 || a.size() > b.size()) return;
ll curdiff = abs(suma - sumb);
if (bestdiff >= curdiff){
bestdiff = curdiff;
ansa = a;
ansb = b;
return;
}
return;
}
a.push_back(in[ind]);
suma += in[ind];
recur(a,b,suma,sumb,ind+1);
a.pop_back();
suma -= in[ind];
b.push_back(in[ind]);
sumb += in[ind];
recur(a,b,suma,sumb,ind+1);
b.pop_back();
sumb -= in[ind];
}
int main(){
cin.tie(0)->sync_with_stdio(0);
cin >> n;
for (int i = 0;i < n;i++){
ll k;
cin >> k;
in.push_back(k);
}
vector<ll> a,b;
recur(a,b,0,0,0);
//out
for (int i = 0;i < ansa.size();i++) cout << ansa[i] <<' ';
cout << '\n';
for (int i = 0;i < ansb.size();i++) cout << ansb[i] <<' ';
return 0;
}