#include "partition.h"
#include <algorithm>
#include <iostream>

std::vector<int> solve(std::vector<int> A) {
    int n = A.size();
    std::vector<int> res;

    // std::vector<std::pair<int, int>> value_pos;
    // for(int i=0; i<n; i++){
    //     value_pos.push_back({A[i], i});
    // }
    // sort(value_pos.begin(), value_pos.end());
    int biggestInd = 0;
    for(int i=0; i<n; i++){
        if(A[i] > A[biggestInd]){
            biggestInd = i;
        }
    }
    // std::cout<<value_pos[0].first;
    
    // group 2
    for(int i=0; i<(n+1)/2-1; i++){
        if(i != biggestInd) {
            res.push_back(i);
        }
    }
    res.push_back(biggestInd);
    for(int i=(n+1)/2-1; i<n; i++){
        if(i != biggestInd) {
            res.push_back(i);
        }
    }
    
    
    // group 1
    // for(int i=0; i<n; i+=2){
    //     res.push_back(value_pos[i].second);
    // }
    // for(int i=1; i<n; i+=2){
    //     res.push_back(value_pos[i].second);
    // }
    return res;
}
/*
3
6
64 8 2 4 128 16
7
1 2 4 8 16 32 64
8
1 2 4 8 16 32 64 128
*/