Submission

Status:

PPPPPPP-PP

Subtask/Task Score:

90/100

Score: 90

User: Nuttykub

Problemset: ประลอง

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-04 22:03:43

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


int n;
vector<ll>input;
vector<ll>ansa;
vector<ll>ansb;
ll bestdif;

void re(vector<ll>&a,vector<ll>&b,ll suma, ll sumb,int index){
    if(index==n){
        if(abs((ll)a.size()-(ll)b.size())>1){
            return;
        }
        ll curdif=abs(suma-sumb);
        if(curdif<bestdif){
            ansa=a;
            ansb=b;
            bestdif=curdif;
        }
        return;
    }

    a.push_back(input[index]);
    suma+=input[index];
    re(a,b,suma,sumb,index+1);
    a.pop_back();
    suma-=input[index];
    b.push_back(input[index]);
    sumb+=input[index];
    re(a,b,suma,sumb,index+1);    
    b.pop_back();
    sumb-=input[index];
}

int main(){
    bestdif=LONG_LONG_MAX;
    cin>>n;
    input.resize(n);
    for(int i=0;i<n;i++){
        cin>>input[i];
    }
    vector<ll>tempa,tempb;
    re(tempa,tempb,0,0,0);
    for(ll x:ansb)cout<<x<<' ';
    cout<<endl;
    for(ll x:ansa)cout<<x<<' ';
}