Indivisible (Codeforces 1818B)
Tags: Others, constructive algorithms

You're given a positive integer $$$n$$$.Find a permutation $$$a_1, a_2, \dots, a_n$$$ such that for any $$$1 \leq l < r \leq n$$$, the sum $$$a_l + a_{l+1} + \dots + a_r$$$ is not divisible by $$$r-l+1$$$.A permutation of length $$$n$$$ is an array consisting of $$$n$$$ distinct integers from $$$1$$$ to $$$n$$$ in arbitrary order. For example, $$$[2,3,1,5,4]$$$ is a permutation, but $$$[1,2,2]$$$ is not a permutation ($$$2$$$ appears twice in the array), and $$$[1,3,4]$$$ is also not a permutation ($$$n=3$$$ but there is $$$4$$$ in the array).

Input: Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 100$$$). Description of the test cases follows.The first line of each test case contain a single integer $$$n$$$ ($$$1 \leq n \leq 100$$$) — the size of the desired permutation.

Output: For each test case, if there is no such permutation print $$$-1$$$.Otherwise, print $$$n$$$ distinct integers $$$p_1, p_{2}, \dots, p_n$$$ ($$$1 \leq p_i \leq n$$$) — a permutation satisfying the condition described in the statement.If there are multiple solutions, print any.

Note: In the first example, there are no valid pairs of $$$l < r$$$, meaning that the condition is true for all such pairs.In the second example, the only valid pair is $$$l=1$$$ and $$$r=2$$$, for which $$$a_1 + a_2 = 1+2=3$$$ is not divisible by $$$r-l+1=2$$$.in the third example, for $$$l=1$$$ and $$$r=3$$$ the sum $$$a_1+a_2+a_3$$$ is always $$$6$$$, which is divisible by $$$3$$$.

Sample Inputs:
3
1
2
3

Sample Outputs:
1
1 2
-1

Solution (Python):
print('\n'.join(['1' if n == 1 else '-1' if n % 2 else ' '.join([str(i + ((i % 2 == 1) * 2 - 1)) for i in range(1, n + 1)]) for n in map(int, [*open(0)][1:])]))

Solution (Python):
t = int(input())
for _ in range(t):
    n = int(input())
    if n == 1:
        res = [1]
    elif n & 1 == 1:
        res = [-1]
    else:
        res = [i for (a, b) in zip(range(2, n + 1, 2), range(1, n, 2)) for i in (a, b)]
    print(*res)

Solution (Python):
for _ in range(int(input())):
    vp = int(input())
    if vp == 1:
        print(1)
    elif vp % 2 == 1:
        print(-1)
    else:
        for i in range(2, vp + 1, 2):
            print(i, i - 1, end=' ')
        print()