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;
}