CF1942A.Farmer John's Challenge
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
让我们称一个数组 a 是有序的,当且仅当 a1≤a2≤…≤an−1≤an。
你得到了 Farmer John 最喜欢的两个整数 n 和 k。他向你发起挑战,要求你找到任意一个满足以下要求的数组 a1,a2,…,an:
- 对于每个 1≤i≤n,都有 1≤ai≤109;
- 在数组 a 的 n 个循环移位中,恰好有 k 个是有序的。†
如果不存在这样的数组 a,输出 −1。
† 数组 a 的第 x 个(1≤x≤n)循环移位是 ax,ax+1,…,an,a1,a2,…,ax−1。如果 cx,i 表示 a 的第 x 个循环移位的第 i 个元素,则恰好有 k 个 x 满足 cx,1≤cx,2≤…≤cx,n。
例如,对于 a=[1,2,3,3],其循环移位如下:
- x=1:[1,2,3,3](有序);
- x=2:[2,3,3,1](无序);
- x=3:[3,3,1,2](无序);
- x=4:[3,1,2,3](无序)。
输入格式
第一行包含一个整数 t(1≤t≤103)——表示测试用例的数量。
每个测试用例包含两个整数 n 和 k(1≤k≤n≤103)——数组 a 的长度以及要求有序的循环移位的数量。
保证所有测试用例中 n 的总和不超过 103。
输出格式
对于每个测试用例,输出一行:
- 如果存在满足条件的数组 a,输出 n 个整数,表示 a1,a2,…,an;
- 否则,输出 −1。
如果有多组解,输出任意一组均可。
输入输出样例
输入#1
3 2 2 3 1 3 2
输出#1
1 1 69420 69 420 -1
说明/提示
在第一个测试用例中,a=[1,1] 满足 n=2,k=2:
a 的两个循环移位分别为 [a1,a2] 和 [a2,a1],即 [1,1],均为有序。
在第二个测试用例中,a=[69420,69,420] 满足 n=3,k=1:
a 的三个循环移位分别为 [a1,a2,a3],[a2,a3,a1],[a3,a1,a2],即 [69420,69,420],[69,420,69420],[420,69420,69]。
只有 [69,420,69420] 是有序的。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?