CF1741B.Funny Permutation

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Funny Permutation

题目描述

如果一个长度为 nn 的数列满足恰好包含 11 到 nn 的整数各一个,则我们称之为排列。例如,[3,1,4,2][3,1,4,2]、[1][1] 和 [2,1][2,1] 都是排列,但是 [1,2,1][1,2,1]、[0,1][0,1] 和 [1,3,4][1,3,4] 都不是。

给你一个 nn,你需要构造一个长度为 nn 的排列 pp,使得它同时满足以下两个要求:

  1. ∀1≤i≤n\forall 1 \leq i \leq n,都至少有一个邻居(pip_i 的邻居为 pi+1p_{i + 1} 和 pi−1p_{i - 1}),使其值为 pi+1p_i + 1 或 pi−1p_i - 1。

  2. ∀1≤i≤n\forall 1 \leq i \leq n,都有 pi≠ip_i \ne i。

我们称同时符合以上两个要求的排列为“有趣的排列”。

例如,当 n=4n = 4 时,[4,3,1,2][4,3,1,2] 是一个“有趣的排列”,因为:

  • p2=p1−1=4−1=3p_2 = p_1 - 1 = 4 - 1 = 3;
  • p1=p2+1=3+1=4p_1 = p_2 + 1 = 3 + 1 = 4;
  • p4=p3+1=1+1=2p_4 = p_3 + 1 = 1 + 1 = 2;
  • p3=p4−1=2−1=1p_3 = p_4 - 1 = 2 - 1 = 1;
  • ∀1≤i≤n\forall 1 \leq i \leq n,都有 pi≠ip_i \ne i。

给定一个 nn,你需要构造出一个长度为 nn 的“有趣的排列”,或者输出一个 −1-1 来表明不存在长度为 nn 的“有趣的排列”。

输入格式

第一行,输入一个正整数 t(1≤t≤104t(1 \leq t \leq 10^4,表示数据组数。

接下来 tt 行,每行一个正整数 n(2≤n≤2×105)n(2 \leq n \leq 2 \times 10^5),表示你需要构造一个长度为 nn 的“有趣的排列”。

数据保证 ∑n≤2×105\sum{n} \leq 2 \times 10^5。

输出格式

对于每组测试数据,输出任意一个长度为 nn 的“有趣的排列,或者输出一个 −1-1——如果这根本不可能。

(Translated by

https://www.luogu.com.cn/user/510555

样例

5
4
3
7
5
2
3 4 2 1
-1
6 7 4 5 3 2 1
5 4 1 2 3
2 1

在线编程 IDE

建议全屏模式获得最佳体验