Submission

Status:

---P--P---

Subtask/Task Score:

20/100

Score: 20

User: Karatat007

Problemset: ประลอง

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-10 09:07:15

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

int n;
int bestdiff = INT_MAX;
vector<int>ansteam1,ansteam2;
vector<int>v;

void payayam(int i,vector<int> &team1,vector<int> &team2){
    if(i >= n){
        if(team2.size()-team1.size() > 1 or team2.size() < team1.size()) return;
        int sum1 = 0,sum2 = 0;
        for(auto x:team1)sum1+=x;
        for(auto x:team2)sum2+=x;
        if(abs(sum1-sum2)<bestdiff){
            bestdiff = abs(sum1-sum2);
            ansteam1 = team1;
            ansteam2 = team2;
        }
        return;
    }
    team1.push_back(v[i]);
    payayam(i+1,team1,team2);
    team1.pop_back();
    team2.push_back(v[i]);
    payayam(i+1,team1,team2);
    team2.pop_back();
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> n;
    v.resize(n);
    for(int i = 0;i < n;++i){
        cin >> v[i];
    }
    vector<int> tempa,tempb;
    payayam(0,tempa,tempb);
    for(auto m : ansteam1) cout << m << ' ';
    cout << '\n';
    for(auto m : ansteam2) cout << m << ' ';
}