CF1942A.Farmer John's Challenge

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

Farmer John's Challenge

题目描述

让我们称一个数组 aa 是有序的,当且仅当 a1≤a2≤…≤an−1≤ana_1 \leq a_2 \leq \ldots \leq a_{n-1} \leq a_n。

你得到了 Farmer John 最喜欢的两个整数 nn 和 kk。他向你发起挑战,要求你找到任意一个满足以下要求的数组 a1,a2,…,ana_1, a_2, \ldots, a_n:

  • 对于每个 1≤i≤n1 \leq i \leq n,都有 1≤ai≤1091 \leq a_i \leq 10^9;
  • 在数组 aa 的 nn 个循环移位中,恰好有 kk 个是有序的。†^\dagger

如果不存在这样的数组 aa,输出 −1-1。

†^\dagger 数组 aa 的第 xx 个(1≤x≤n1 \leq x \leq n)循环移位是 $a_x, a_{x+1}, \ldots, a_n, a_1, a_2, \ldots, a_{x-1}$。如果 cx,ic_{x,i} 表示 aa 的第 xx 个循环移位的第 ii 个元素,则恰好有 kk 个 xx 满足 cx,1≤cx,2≤…≤cx,nc_{x,1} \leq c_{x,2} \leq \ldots \leq c_{x,n}。

例如,对于 a=[1,2,3,3]a = [1, 2, 3, 3],其循环移位如下:

  • x=1x = 1:[1,2,3,3][1, 2, 3, 3](有序);
  • x=2x = 2:[2,3,3,1][2, 3, 3, 1](无序);
  • x=3x = 3:[3,3,1,2][3, 3, 1, 2](无序);
  • x=4x = 4:[3,1,2,3][3, 1, 2, 3](无序)。

输入格式

第一行包含一个整数 tt(1≤t≤1031 \leq t \leq 10^3)——表示测试用例的数量。

每个测试用例包含两个整数 nn 和 kk(1≤k≤n≤1031 \leq k \leq n \leq 10^3)——数组 aa 的长度以及要求有序的循环移位的数量。

保证所有测试用例中 nn 的总和不超过 10310^3。

输出格式

对于每个测试用例,输出一行:

  • 如果存在满足条件的数组 aa,输出 nn 个整数,表示 a1,a2,…,ana_1, a_2, \ldots, a_n;
  • 否则,输出 −1-1。

如果有多组解,输出任意一组均可。

说明/提示

在第一个测试用例中,a=[1,1]a = [1, 1] 满足 n=2,k=2n = 2, k = 2:

aa 的两个循环移位分别为 [a1,a2][a_1, a_2] 和 [a2,a1][a_2, a_1],即 [1,1][1, 1],均为有序。

在第二个测试用例中,a=[69 420,69,420]a = [69\,420, 69, 420] 满足 n=3,k=1n = 3, k = 1:

aa 的三个循环移位分别为 [a1,a2,a3][a_1, a_2, a_3],[a2,a3,a1][a_2, a_3, a_1],[a3,a1,a2][a_3, a_1, a_2],即 [69 420,69,420][69\,420, 69, 420],[69,420,69 420][69, 420, 69\,420],[420,69 420,69][420, 69\,420, 69]。

只有 [69,420,69 420][69, 420, 69\,420] 是有序的。

由 ChatGPT 4.1 翻译

样例

3
2 2
3 1
3 2
1 1
69420 69 420
-1

在线编程 IDE

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