CF1844F2.Min Cost Permutation (Hard Version)
省选/NOI-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
The only difference between this problem and the easy version is the constraints on t and n.
You are given an array of n positive integers a1,…,an, and a (possibly negative) integer c.
Across all permutations b1,…,bn of the array a1,…,an, consider the minimum possible value of $$\sum_{i=1}^{n-1} |b_{i+1}-b_i-c|.$$ Find the lexicographically smallest permutation b of the array a that achieves this minimum.
A sequence x is lexicographically smaller than a sequence y if and only if one of the following holds:
- x is a prefix of y, but x=y;
- in the first position where x and y differ, the sequence x has a smaller element than the corresponding element in y.
本题与简单版本的唯一区别在于 t 和 n 的约束条件。
给定一个由 n 个正整数组成的数组 a1,…,an,以及一个(可能为负的)整数 c。
在数组 a1,…,an 的所有排列 b1,…,bn 中,考虑表达式
i=1∑n−1∣bi+1−bi−c∣
所能取到的最小值。请找出达到该最小值的、字典序最小的数组 a 的排列 b。
序列 x 字典序小于序列 y,当且仅当满足以下任一条件:
- x 是 y 的真前缀(即 x 是 y 的前缀且 x=y);
- 在 x 与 y 首次出现不同元素的位置上,x 中的对应元素小于 y 中的对应元素。
输入格式
Each test contains multiple test cases. The first line contains the number of test cases t (1≤t≤104). The description of the test cases follows.
The first line of each test case contains two integers n and c (1≤n≤2⋅105, −109≤c≤109).
The second line of each test case contains n integers a1,…,an (1≤ai≤109).
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤104)。随后是各测试用例的描述。
每个测试用例的第一行包含两个整数 n 和 c(1≤n≤2⋅105,−109≤c≤109)。
每个测试用例的第二行包含 n 个整数 a1,…,an(1≤ai≤109)。
保证所有测试用例的 n 值之和不超过 2⋅105。
输出格式
For each test case, output n integers b1,…,bn, the lexicographically smallest permutation of a that achieves the minimum i=1∑n−1∣bi+1−bi−c∣.
对于每个测试用例,输出 n 个整数 b1,…,bn,即数组 a 的字典序最小的排列,使得 i=1∑n−1∣bi+1−bi−c∣ 取得最小值。
输入输出样例
输入#1
3 6 -7 3 1 4 1 5 9 3 2 1 3 5 1 2718 2818
输出#1
9 3 1 4 5 1 1 3 5 2818
说明/提示
In the first test case, it can be proven that the minimum possible value of i=1∑n−1∣bi+1−bi−c∣ is 27, and the permutation b=[9,3,1,4,5,1] is the lexicographically smallest permutation of a that achieves this minimum: ∣3−9−(−7)∣+∣1−3−(−7)∣+∣4−1−(−7)∣+∣5−4−(−7)∣+∣1−5−(−7)∣=1+5+10+8+3=27.
In the second test case, the minimum possible value of i=1∑n−1∣bi+1−bi−c∣ is 0, and b=[1,3,5] is the lexicographically smallest permutation of a that achieves this.
In the third test case, there is only one permutation b.
在第一个测试用例中,可以证明 i=1∑n−1∣bi+1−bi−c∣ 的最小可能值为 27,且排列 b=[9,3,1,4,5,1] 是达到该最小值的 a 的字典序最小排列:∣3−9−(−7)∣+∣1−3−(−7)∣+∣4−1−(−7)∣+∣5−4−(−7)∣+∣1−5−(−7)∣=1+5+10+8+3=27。
在第二个测试用例中,i=1∑n−1∣bi+1−bi−c∣ 的最小可能值为 0,且 b=[1,3,5] 是达到该最小值的 a 的字典序最小排列。
在第三个测试用例中,仅存在唯一一个排列 b。
输入解题思路,AI测评打分。不知道怎么写?