#P15075. [ICPC 2024 Chengdu R] Closest Derangement
[ICPC 2024 Chengdu R] Closest Derangement
说明
Blackbird 有一个长度为 的排列 ,他想找到 的一个错位排列 ,即 是另一个长度为 的排列,且对于 ,都有 。与此同时,他希望 取到最小值。满足上述条件的排列 ,称为 的最近错位排列。
的最近错位排列可能有多个,你需要输出字典序第 小的最近错位排列。如果 的最近错位排列少于 个,则输出 。
一个长度为 的排列,是指一个长度为 的序列,满足所有元素互不相同且均为从 到 的正整数。排列可以按字典序排序。设 和 是两个长度为 的不同的排列。那么, 当且仅当对于满足 的最小下标 ,有 。
输入格式
第一行包含一个整数 (),表示测试数据组数。
对于每组数据,第一行包含两个正整数 ()和 ()。第二行包含 个正整数 。保证 是一个排列。
保证每组数据中 之和不超过 。
输出格式
对于每组数据,如果最近错位排列的数量不少于 ,则输出 个正整数 ,表示 的字典序第 小的最近错位排列。否则输出 。
2
2 2
2 1
3 2
1 2 3
-1
3 1 2
提示
第一个测试用例中, 是唯一的最近错位排列,所以输出 。
第二个测试用例中, 和 是 的最近错位排列,且 的字典序大于 。
京公网安备 11011102002149号