CF1833B.Restore the Weather

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Restore the Weather

题目描述

给定一个数组 aa,表示 Berlandia 最近 nn 天的天气预报。即 aia_i 表示第 ii 天的预计气温(1≤i≤n1 \le i \le n)。

还给定一个数组 bb,表示每一天的实际气温,但数组 bb 的所有数值顺序被打乱了。

请确定每一天实际的气温分别是多少。已知实际气温与预报气温的差值不会超过 kk 度。换句话说,如果第 ii 天的实际气温为 cc,则总有 ∣ai−c∣≤k|a_i - c| \le k。

例如,设数组 a=[1,3,5,3,9]a = [1, 3, 5, 3, 9],长度 n=5n = 5,k=2k = 2,数组 b=[2,5,11,2,4]b = [2, 5, 11, 2, 4]。那么可以将 bb 重排为 [2,2,5,4,11][2, 2, 5, 4, 11],使得:

  • 第 11 天,∣a1−b1∣=∣1−2∣=1|a_1 - b_1| = |1 - 2| = 1,1≤2=k1 \le 2 = k,满足条件;
  • 第 22 天,∣a2−b2∣=∣3−2∣=1|a_2 - b_2| = |3 - 2| = 1,1≤2=k1 \le 2 = k,满足条件;
  • 第 33 天,∣a3−b3∣=∣5−5∣=0|a_3 - b_3| = |5 - 5| = 0,0≤2=k0 \le 2 = k,满足条件;
  • 第 44 天,∣a4−b4∣=∣3−4∣=1|a_4 - b_4| = |3 - 4| = 1,1≤2=k1 \le 2 = k,满足条件;
  • 第 55 天,∣a5−b5∣=∣9−11∣=2|a_5 - b_5| = |9 - 11| = 2,2≤2=k2 \le 2 = k,满足条件。

输入格式

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

接下来是每个测试用例的描述。

每个测试用例的第一行包含两个整数 nn(1≤n≤1051 \le n \le 10^5)和 kk(0≤k≤1090 \le k \le 10^9),分别表示天数和每一天预报与实际气温的最大允许差值。

每个测试用例的第二行包含 nn 个整数,表示数组 aa 的元素(−109≤ai≤109-10^9 \le a_i \le 10^9)。

每个测试用例的第三行包含 nn 个整数,表示数组 bb 的元素(−109≤bi≤109-10^9 \le b_i \le 10^9)。

保证所有测试用例中 nn 的总和不超过 10510^5,并且总能将数组 bb 重排,使得对所有 ii 都有 ∣ai−bi∣≤k|a_i - b_i| \le k。

输出格式

对于每个测试用例,输出一行,包含恰好 nn 个整数,表示每一天的实际气温(按顺序排列)。

如果有多种答案,输出任意一种均可。

说明/提示

由 ChatGPT 4.1 翻译

样例

3
5 2
1 3 5 3 9
2 5 11 2 4
6 1
-1 3 -2 0 -5 -1
-4 0 -1 4 0 0
3 3
7 7 7
9 4 8
2 2 5 4 11
0 4 -1 0 -4 0
8 4 9

在线编程 IDE

建议全屏模式获得最佳体验