Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: SayRo
Problemset: ประลอง
Language: cpp
Time: 0.002 second
Submitted On: 2026-10-08 13:58:40
#include<bits/stdc++.h>
using namespace std;
vector<int> unit;
vector<int> BestTeam;
vector<int> CurTeam;
int n;
int TotalPower=0;
int PDiff;
int Best_Diff=INT_MAX;
int Cur_Diff;
void solve(int size, int power, int idx){
Cur_Diff=abs(power*2-TotalPower);
if(size==(n/2)){
if(Cur_Diff<Best_Diff){
BestTeam=CurTeam;
Best_Diff=Cur_Diff;
}
return;
}
if(Best_Diff==PDiff) return;
if(idx==n) return;
if(size+(n-idx)<(n/2)) return;
CurTeam[idx]=2;
solve(size,power,idx+1);
CurTeam[idx]=1;
solve(size+1,power+unit[idx],idx+1);
CurTeam[idx]=2;
}
int main(){
cin.tie(nullptr)->sync_with_stdio(0);
cin>>n;
unit.resize(n);
BestTeam.resize(n);
CurTeam.resize(n,2);
for(int i=0;i<n;i++){
cin>>unit[i];
TotalPower+=unit[i];
}
PDiff=TotalPower%2;
solve(0,0,0);
for(int i=0;i<n;i++){
if(BestTeam[i]==1) cout<<unit[i]<<" ";
}
cout<<endl;
for(int i=0;i<n;i++){
if(BestTeam[i]==2) cout<<unit[i]<<" ";
}
}