CF1513A.Array and Peaks

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

Array and Peaks

题目描述

对于一列 nn 个整数组成的数列,如果这个序列包括 11nn 的每个数字(即每个数字只出现一次),那么这个数列就叫做一个“排列”。

给您两个整数 nnkk,请您构造一个排列 aa,要求这个排列符合上述要求并且要有 kk 个峰值。(如果在这个排列 aa 中的一个元素 ii 满足 1<i<n1 < i < n , ai>ai1a_i > a_{i - 1}ai>ai+1a_i > a_{i + 1},那么这个 ii 就叫峰值)。如果给定条件构造不出符合要求的排列,输出 1-1

输入格式

第一行是一个整数 t(1t100)t (1 \leq t \leq 100) 代表数据测试组数。

从第二行到第 t+1t + 1 行,每行包括两个数字 n(1n100)n (1 \leq n \leq 100)k(0kn)k (0 \leq k \leq n)

输出格式

输出 tt 行,对于每行,如果没有符合要求的排列,那么输出 1-1,否则输出一行 nn 个数字——符合要求的排列。

如果有多组答案,随意输出一组。

说明/提示

在样例的第二组测试数据中,我们可以构造一个排列 a=[2,4,1,5,3]a = [2, 4, 1, 5, 3]i=2i = 2i=4i = 4 是这个排列的峰值,因为 a2>a1,a2>a3a_2 > a_1, a_2 > a_3 并且 a4>a3,a4>a5a_4 > a_3, a_4 > a_5

样例

5
1 0
5 2
6 6
2 1
6 1
1 
2 4 1 5 3 
-1
-1
1 3 6 5 4 2

在线编程 IDE

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