题目描述
给定一个正整数 N 和两个长度为 N 的整数序列 A=(a1,…,aN), B=(b1,…,bN)。
另外,定义多重集合 X,其包含 N2 个值 (ai+bj) (1≤i,j≤N)。
对于每个元素都在 [−1018, 1018] 范围内的 N×N 整数矩阵 M,定义其分数如下:
- 设 S 为一个多重集合,包含 N2 个值,分别为“M 的第 i 行或第 j 列中属于的 2N−1 个元素的总和”(1≤i,j≤N)。此时,分数为对所有整数 z,min( X 中 z 的出现次数,S 中 z 的出现次数 ) 的总和。
请你对于每个测试用例,求出一个能使分数最大的矩阵 M。
T 组测试数据,请分别解决上述问题。
输入格式
输入以如下格式从标准输入给出,其中 testi 表示第 i 个测试用例。
T
test1
⋮
testT
每个测试用例格式如下:
N
a1 a2 … aN
b1 b2 … bN
输出格式
对于每个测试用例,输出如下格式:
m1,1 m1,2 … m1,N
⋮
mN,1 mN,2 … mN,N
其中,mi,j 表示分数最大的矩阵 M 的第 i 行第 j 列的元素,且需满足 −1018≤mi,j≤1018。
若存在多个分数最大的矩阵 M,输出其中任意一个均可。
样例 1
输入
3
1
5
-10
2
0 -1
8 -11
3
20 23 26
1 2 3
输出
-5
8 9
-10 -9
2 9 4
7 5 3
6 1 8
说明/提示
限制条件
- 1≤T≤2.5×105
- 1≤N≤500
- −109≤ai,bi≤109
- 所有测试用例中 N2 的总和不超过 2.5×105
- 输入均为整数
样例说明 1
第 1 个测试用例中,X={−5}, S={−5},分数为 1。
第 2 个测试用例中,X={8,−11,7,−12}, S={7,8,−11,−10},分数为 3。
第 3 个测试用例中,$X=\{21,22,23,24,25,26,27,28,29\},\ S=\{28,21,26,23,25,27,24,29,22\}$,分数为 9。
由 ChatGPT 4.1 翻译