#include "partition.h"
#include <bits/stdc++.h>

using namespace std;;
long long s,h;
long long n,a[100001];
std::vector<int> solve(std::vector<int> A)
{
    s=h=0;
    n=A.size();

    vector<int> g;
   int l=0,r=n-1;
   while(l<=r)
   {
       g.push_back(r);
       if(l!=r)g.push_back(l);
       l++;
       r--;
   }

   return g;

    for(long long i=0;i<n;i++)
        a[i]=A[i];

    for(long long i=0;i<n;i++)
        h+=a[i];
    s=h;
    h=h/2+h%2;
    //cout<<s<<" "<<h<<endl;

    long long ans=n+1,f=0;
    for(long long i=0;i<(1<<n);i++)
    {
        long long cnt=0,in=0,maxx=0;
        for(long long j=0;j<n;j++)
        {
            if(i&(1<<j))
            {
                maxx=max(maxx,a[j]);
                cnt++;
                in+=a[j];
            }
        }

        if(in>=h&&in-maxx<h)
        {
            ans=min(ans,abs(n-2*cnt));
            if(ans==abs(n-2*cnt))f=i;
        }
    }

    vector<int> v;

    int maxx=0,id=0;
    for(long long i=0;i<n;i++)
    {
        if((1<<i)&f)
        {
            if(a[i]>maxx)
            {
                maxx=a[i];
                id=i;
            }
        }
    }

    for(long long i=0;i<n;i++)
    {
        if(((1<<i)&f)&&i!=id)
        {
            v.push_back(i);
        }
    }

    v.push_back(id);


    for(long long i=0;i<n;i++)
    {
        if((1<<i)&f);
        else v.push_back(i);
    }

    return v;
}


