CF1513A Array and Peaks
题目描述
对于一列 $n$ 个整数组成的数列,如果这个序列包括 $1$ 到 $n$ 的每个数字(即每个数字只出现一次),那么这个数列就叫做一个“排列”。
给您两个整数 $n$ 和 $k$,请您构造一个排列 $a$,要求这个排列符合上述要求并且要有 $k$ 个峰值。(如果在这个排列 $a$ 中的一个元素 $i$ 满足 $1 < i < n$ , $a_i > a_{i - 1}$ 且 $a_i > a_{i + 1}$,那么这个 $i$ 就叫峰值)。如果给定条件构造不出符合要求的排列,输出 $-1$。
输入格式
第一行是一个整数 $t (1 \leq t \leq 100)$ 代表数据测试组数。
从第二行到第 $t + 1$ 行,每行包括两个数字 $n (1 \leq n \leq 100)$ 和 $k (0 \leq k \leq n)$。
输出格式
输出 $t$ 行,对于每行,如果没有符合要求的排列,那么输出 $-1$,否则输出一行 $n$ 个数字——符合要求的排列。
如果有多组答案,随意输出一组。
说明/提示
在样例的第二组测试数据中,我们可以构造一个排列 $a = [2, 4, 1, 5, 3]$。 $i = 2$ 和 $i = 4$ 是这个排列的峰值,因为 $a_2 > a_1, a_2 > a_3$ 并且 $a_4 > a_3, a_4 > a_5$。