Submission

Status:

P-PPPP--PP

Subtask/Task Score:

70/100

Score: 70

User: GastrointestinalTrackInflammation

Problemset: ประลอง

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-06 21:42:22

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

int n;
int ans=INT_MAX;
int a[101];
int t1max=100,t2max=100;
int t1ans[101];
int t2ans[101];

void trySend(int cur, int t1rn, int t2rn, int t1score, int t2score, int a1[], int a2[]){
    if(cur==n){
        if(t1rn<t1max){
            a1[t1rn]=a[cur];
            t1score+=a[cur];
        }
        else {
            a2[t2rn]=a[cur];
            t2score+=a[cur];
        }
        int dif=abs(t1score-t2score);
        if(dif<=ans){
            ans=dif;
            for(int i=0;i<t1max;i++){
                t1ans[i]=a1[i];
            }
            for(int i=0;i<t2max;i++){
                t2ans[i]=a2[i];
            }
        }
        return;
    }
    if(t1rn<t1max){
        a1[t1rn]=a[cur];
        trySend(cur+1,t1rn+1,t2rn,t1score+a[cur],t2score,a1,a2);
    }
    if(t2rn<t2max){
        a2[t2rn]=a[cur];
        trySend(cur+1,t1rn,t2rn+1,t1score,t2score+a[cur],a1,a2);
    }
}

void solve(){
    cin>>n;
    t1max=n/2+(n%2);
    t2max=n/2;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int t1cur[101];
    int t2cur[101];
    trySend(1,0,0,0,0,t1cur,t2cur);
    for(int i=0;i<t1max;i++){
        cout<<t1ans[i]<<' ';
    }
    cout<<endl;
    for(int i=0;i<t2max;i++){
        cout<<t2ans[i]<<' ';
    }
}
 
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t=1;
    //cin>>t;
    while(t--)solve();
    return 0;
}