CF1992C.Gorilla and Permutation

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Gorilla 和 Noobish_Monk 找到了三个数 nn、mm 和 kk(m<km < k)。他们决定构造一个长度为 nn 的排列†^{\dagger}。

对于这个排列,Noobish_Monk 提出了如下函数:g(i)g(i) 表示排列前 ii 个前缀中所有不大于 mm 的数的和。类似地,Gorilla 提出了函数 ff,其中 f(i)f(i) 表示排列前 ii 个前缀中所有不小于 kk 的数的和。长度为 ii 的前缀是指原数组的前 ii 个元素组成的子数组。

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

  • f(1)=5f(1) = 5,因为 5≥55 \ge 5;g(1)=0g(1) = 0,因为 5>25 > 2;
  • f(2)=5f(2) = 5,因为 3<53 < 5;g(2)=0g(2) = 0,因为 3>23 > 2;
  • f(3)=5f(3) = 5,因为 4<54 < 5;g(3)=0g(3) = 0,因为 4>24 > 2;
  • f(4)=5f(4) = 5,因为 1<51 < 5;g(4)=1g(4) = 1,因为 1≤21 \le 2;
  • f(5)=5f(5) = 5,因为 2<52 < 5;g(5)=1+2=3g(5) = 1 + 2 = 3,因为 2≤22 \le 2。

请你帮助他们找到一个排列,使得 (∑i=1nf(i)−∑i=1ng(i))\left(\sum_{i=1}^n f(i) - \sum_{i=1}^n g(i)\right) 的值最大。

†^{\dagger} 长度为 nn 的排列是指由 11 到 nn 的 nn 个不同整数按任意顺序组成的数组。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是排列(因为 22 出现了两次),[1,3,4][1,3,4] 也不是排列(因为 n=3n=3,但 44 出现在数组中)。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例一行,包含三个整数 nn、mm、kk(2≤n≤1052 \le n \le 10^5;1≤m<k≤n1 \le m < k \le n),分别表示要构造的排列的长度和两个整数。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个排列——即满足题目条件的数列。如果有多组解,输出任意一组即可。

输入输出样例

  • 输入#1

    3
    5 2 5
    3 1 3
    10 3 8

    输出#1

    5 3 4 1 2
    3 2 1
    10 9 8 4 7 5 6 1 2 3

说明/提示

在第一个示例中,(∑i=1nf(i)−∑i=1ng(i))=5⋅5−(0⋅3+1+3)=25−4=21\left(\sum_{i=1}^n f(i) - \sum_{i=1}^n g(i)\right) = 5 \cdot 5 - (0 \cdot 3 + 1 + 3) = 25 - 4 = 21。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页