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