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