#include<bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
using namespace std;
#include "partition.h"

std::vector<int> solve(std::vector<int> a) {
	int n = a.size();
	vector<int> v;
	if (n % 4 == 0){
		for (int i = 0; i < n / 2; i++){
			v.pb(i);
			v.pb(n - 1 - i);
		}
	}else if (n % 4 == 1){
		v.pb(0); // a[0] == 1
		for (int i = 1; i < (n + 1) / 2; i++){
			v.pb(i);
			v.pb(n - i);
		}
	}else if (n % 4 == 2){
		v.pb(1); // a[1] == 2;
		for (int i = 2; i < (n + 2) / 2; i++){
			v.pb(i);
			v.pb(n + 1 - i);
		}
		v.pb(0); // a[0] == 1
	}else if (n % 4 == 3){
		v.pb(n - 1); // bolo mag. 7
		for (int i = 0; i < n / 2; i++){
			v.pb(i);
			v.pb(n - 2 - i);
		}
	}
	
    return v;
}
