Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: NovemNotes

Problemset: ประลอง

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-15 22:11:33

#include <bits/stdc++.h>
using namespace std;

#define int long long

const int N = 102;
int n;
int mn=INT_MAX;
vector<int> v(N);
vector<int> ans1,ans2;

void gen(int i,int sum1,int sum2,vector<int> &v1,vector<int> &v2){
    if(i==n){
        int num = abs(sum1-sum2);
        // cout << num << "\n";
        // for(auto &x:v1)cout << x << " ";cout << "\n";
        // for(auto &x:v2)cout << x << " ";cout << "\n";
        if(num<mn){
            mn=num;
            if(v1.size()<=v2.size()){
                ans1=v1;
                ans2=v2;
            }else{
                ans1=v2;
                ans2=v1;
            }
        }
        return ;
    }
    //for 2
    if((n%2==0&&v2.size()<n/2)||(n%2==1&&v2.size() < (n+1)/2)){
        v2.emplace_back(v[i]);
        gen(i+1,sum1,sum2+v[i],v1,v2);
        v2.pop_back();
    }
    //for 1
    if((n%2==0 && v1.size()<n/2)||(n%2==1&&v1.size() < (n-1)/2)){
        v1.emplace_back(v[i]);
        gen(i+1,sum1+v[i],sum2,v1,v2);
        v1.pop_back();
    }
}

int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    cin >> n;
    for(int i=0;i<n;i++)cin >> v[i];
    vector<int> v1,v2;
    gen(0,0,0,v1,v2);
    for(auto &x:ans1)cout << x << " ";cout << "\n";
    for(auto &x:ans2)cout << x << " ";
    return 0;
}