5
bool fillIndex(vector<int> &a, vector<bool> &used, int idx) {6
if (idx == SIZE) return true;7
if (a[idx]) return fillIndex(a, used, idx + 1);9
for (int num = N - 1; num >= 1; num--) {10
if (used[num]) continue;11
if (num != 1 and (idx + num >= SIZE or a[idx + num] != 0)) continue;13
if (num != 1) a[idx + num] = num;15
if (fillIndex(a, used, idx + 1)) return true;17
if (num != 1) a[idx + num] = 0;24
vector<int> constructDistancedSequence(int n) {25
SIZE = 1 + (n - 1) * 2, N = n;26
vector<int> a(SIZE, 0);27
vector<bool> used(n, false);34
fillIndex(a, used, 1);