#include<bits/stdc++.h>
#include "partition.h"
using namespace std;
std::vector<int> solve(std::vector<int> A) {

   int N = (int)A.size();
   long long sum = accumulate(A.begin() , A.end() , 0LL);
   long long s = 0;
   int l = 0;
   for(int r = 0;r < N;r ++){
      s += A[r];
      while(s - A[l] >= sum - s + A[l]){
         s -= A[l++];
      }
      if(s >= sum - s && r - l + 1 == (N + 1) / 2){
         vector<int> ans;
         for(int i = l;i <= r;i ++){
            ans.push_back(i);
         }
         for(int i = 0;i < l;i ++){
            ans.emplace_back(i);
         }
         for(int i = r + 1;i < N;i ++){
            ans.emplace_back(i);
         }  
         return ans;
      }
   }
}