Codeforces 1352 G. Special Permutation(构造)_比赛

AC代码:

const int N = 2e5 + 10;
int n, m, k;
int cnt, res, pos, ans;
int a[N];

int main()
{
int t;
sd(t);
while (t--)
{
sd(n);
if (n < 4)
{
puts("-1");
continue;
}
if (n == 4)
{
puts("3 1 4 2");
continue;
}
ans = 1;
while (ans <= n)
printf("%d ", ans), ans += 2;
ans -= 5, printf("%d ", ans);
if (ans + 4 <= n)
printf("%d ", ans + 4);
if (ans + 2 <= n)
printf("%d ", ans + 2);
ans -= 2;
while (ans > 1)
printf("%d ", ans), ans -= 2;
printf("\n");
}
return 0;
}