NULL_SF 和 Gouk_ 发现了三个数字 n , m 和 k (m < k)。他们决定构造一个长度为 n 的排列 ^{\dagger} 。
对于该排列,Gouk_ 提出了以下函数: g(i) 是该排列中长度为 i 的前缀上不大于 m 的所有数字的和。类似地,NULL_SF 提出了函数 f ,其中 f(i) 是长度为 i 的前缀上不小于 k 的所有数字的和。长度为 i 的前缀是由原始数组的第一个 i 元素组成的子数组。
例如,如果 n = 5 , m = 2 , k = 5 ,排列为 [5, 3, 4, 1, 2] ,则:
帮助他们找到一个使 \left(\sum_{i=1}^n f(i) - \sum_{i=1}^n g(i)\right) 值最大化的排列。
^{\dagger} 长度为 n 的排列是由 n 个从 1 到 n 的任意顺序的不同整数组成的数组。例如, [2,3,1,5,4] 是一个排列,但 [1,2,2] 不是一个排列(因为 2 在数组中出现了两次), [1,3,4] 也不是一个排列(因为 n=3 ,但 4 出现在数组中)。
输入
第一行包含一个整数 t ( 1 \le t \le 10^4)——测试用例数。
每个案例的唯一一行包含三个整数 n, m, k ( 2 \le n \le 10^5; 1 \le m < k \le n)——要构建的排列的大小和两个整数。
保证所有测试用例中 n 的总和不超过 2 \times 10^5 。
输出
对于每个测试用例,输出排列组合,即满足问题条件的一组数字。如果有多个解决方案,你可以输出其中任何一个。
样例
标准输入 复制文本 |
3 5 2 5 3 1 3 10 3 8 |
标准输出 复制文本 |
5 4 3 1 2 3 2 1 10 9 8 7 6 5 4 1 2 3 |
来源
2024 华南师范大学百度杯新生赛 正式赛 Div.2 新生赛道