Submission
Status:
---P--P---
Subtask/Task Score:
20/100
Score: 20
User: Patn01Z
Problemset: ประลอง
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-09 23:09:35
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
typedef struct{
int data;
int index;
}UNU;
int main(){
int n;
cin >> n;
vector<UNU> a;
for(int i=0;i<n;i++){
UNU temp;
cin >> temp.data;
temp.index = i;
a.push_back(temp);
}
sort(&a[0],&a[0]+n,[](UNU x,UNU y){return x.data<y.data;});
vector<UNU> t1;
vector<UNU> t2;
int sum1=0,sum2=0;
while(a.size()!=0){
if(a.back().data>0){
if(sum1>sum2){
t2.push_back(a.back());
sum2=sum2+a.back().data;
a.pop_back();
}
else{
t1.push_back(a.back());
sum1=sum1+a.back().data;
a.pop_back();
}
}
else{
if(sum1>sum2){
t1.push_back(a.back());
sum1=sum1+a.back().data;
a.pop_back();
}
else{
t2.push_back(a.back());
sum2=sum2+a.back().data;
a.pop_back();
}
}
}
sort(t1.begin(),t1.end(),[](UNU x,UNU y){return x.index<y.index;});
sort(t2.begin(),t2.end(),[](UNU x,UNU y){return x.index<y.index;});
for(int i=0;i<t1.size();i++){
cout << t1[i].data << " ";
}
cout << endl;
for(int i=0;i<t2.size();i++){
cout << t2[i].data << " ";
}
}