CF1833B.Restore the Weather

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

Restore the Weather

题目描述

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

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

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

例如,设数组 a=[1,3,5,3,9]a = [1, 3, 5, 3, 9],长度 n=5n = 5k=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 天,a1b1=12=1|a_1 - b_1| = |1 - 2| = 112=k1 \le 2 = k,满足条件;
  • 22 天,a2b2=32=1|a_2 - b_2| = |3 - 2| = 112=k1 \le 2 = k,满足条件;
  • 33 天,a3b3=55=0|a_3 - b_3| = |5 - 5| = 002=k0 \le 2 = k,满足条件;
  • 44 天,a4b4=34=1|a_4 - b_4| = |3 - 4| = 112=k1 \le 2 = k,满足条件;
  • 55 天,a5b5=911=2|a_5 - b_5| = |9 - 11| = 222=k2 \le 2 = k,满足条件。

输入格式

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

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

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

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

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

保证所有测试用例中 nn 的总和不超过 10510^5,并且总能将数组 bb 重排,使得对所有 ii 都有 aibik|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

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