2133. 你俩的要求怎么这么多

NULL_SFGouk_ 发现了三个数字 nmk (m < k)。他们决定构造一个长度为 n 的排列 ^{\dagger}

对于该排列,Gouk_ 提出了以下函数: g(i) 是该排列中长度为 i 的前缀上不大于 m 的所有数字的和。类似地,NULL_SF 提出了函数 f ,其中 f(i) 是长度为 i 的前缀上不小于 k 的所有数字的和。长度为 i 的前缀是由原始数组的第一个 i 元素组成的子数组。

例如,如果 n = 5m = 2k = 5 ,排列为 [5, 3, 4, 1, 2] ,则:

  • f(1) = 5 ,因为 5 \ge 5 ; g(1) = 0 ,因为 5 > 2 ;
  • f(2) = 5 ,因为 3 < 5 ; g(2) = 0 ,因为 3 > 2 ;
  • f(3) = 5 ,因为 4 < 5 ; g(3) = 0 ,因为 4 > 2 ;
  • f(4) = 5 ,因为 1 < 5 ; g(4) = 1 ,因为 1 \le 2 ;
  • f(5) = 5 ,因为 2 < 5 ; g(5) = 1 + 2 = 3 ,因为 2 \le 2

帮助他们找到一个使 \left(\sum_{i=1}^n f(i) - \sum_{i=1}^n g(i)\right) 值最大化的排列。

^{\dagger} 长度为 n 的排列是由 n 个从 1n 的任意顺序的不同整数组成的数组。例如, [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 新生赛道

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 328
通过 180