#CF2091C. 密码锁
密码锁
C. 密码锁
每个测试点时间限制:2 秒
内存限制:256 兆字节
在 IT 校园 "NEIMARK" 中,有几个绝密房间,用于开发重大编程竞赛的题目。要进入其中一个房间,你必须通过选择正确的密码来解开一个环形锁。这个密码每天都会更新。
今天的密码是一个由 到 组成的排列,并满足以下性质:在它的每一个循环移位 中,恰好有一个不动点。即,在每一个循环移位中,恰有一个元素的值等于它在排列中的位置。
输出任意一个满足条件的排列。如果不存在这样的排列,则输出 。
排列定义为长度为 的序列,由 到 的整数组成,每个数字恰好出现一次。例如,、、 是排列;、、 不是。
数组的循环移位是通过将最后一个元素移动到数组的开头得到的。长度为 的排列恰好有 个不同的循环移位。
输入格式
每个测试文件包含多个测试用例。第一行包含一个整数 (),表示测试用例的数量。每个测试用例的描述如下:
每个测试用例只有一行,包含一个整数 ()。
保证所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一个满足条件的排列。如果有多个解,输出任意一个。如果没有这样的排列,输出 。
示例输入
3
4
5
3
示例输出
-1
4 1 3 5 2
1 3 2
提示
在第二个示例中,存在一个排列,使得在每一个循环移位中都有一个不动点(深红色标出):
第一行是位置编号,第二行是该排列的所有循环移位。