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

vector<int> solve(vector<int> a)
{
    int n=a.size(), optim=0, dif_optim=n;
    vector<int> _a(1<<n);
    long long s_total=0;
    for(int i=0; i<n; i++)
    {
        s_total+=a[i];
        _a[1<<i]=a[i];
    }
    for(int mask=1; mask<(1<<n); mask++)
    {
        int c_mask=mask;
        int dif=0;
        long long sum=0;
        while(c_mask)
        {
            if(c_mask&(-c_mask)) dif++;
            sum+=_a[c_mask&-c_mask];
            c_mask-=(c_mask&-c_mask);
        }
        dif=abs(n-2*dif);
        if(sum>=(s_total>>1) && dif<dif_optim) {optim=mask; dif_optim=dif;}
    }
    vector<int> ans(n);
    int st=0, dr=n-1;
    for(int bit=0; bit<n; bit++)
    {
        if((1<<bit)&optim) ans[st++]=bit;
        else ans[dr--]=bit;
    }
    return ans;
}