给定两个向量 $v_1 = (x_1, x_2, \dots, x_n)$ 和 $v_2 = (y_1, y_2, \dots, y_n)$。这两个向量的标量积(点积)是一个数值,计算公式为 $x_1y_1 + x_2y_2 + \dots + x_ny_n$。
假设你可以随意重排每个向量的坐标。请选择两个排列,使得这两个新向量的标量积最小,并输出该最小标量积。
输入格式
输入文件的第一行包含整数 $T$,表示测试用例的数量。对于每个测试用例,第一行包含整数 $n$。 接下来的两行各包含 $n$ 个整数,分别表示 $v_1$ 和 $v_2$ 的坐标。
输出格式
对于每个测试用例,输出一行:
Case #$X$: $Y$
其中 $X$ 是测试用例编号(从 1 开始),$Y$ 是两个给定向量在所有排列方式下能得到的最小标量积。
数据范围
小数据集(测试集 1 - 可见;5 分)
$T = 1000$
$1 < n < 8$
$-1000 < x_i, y_i < 1000$
大数据集(测试集 2 - 隐藏;10 分)
$T = 10$
$100 < n < 800$
$-100000 < x_i, y_i < 100000$
样例
样例输入 1
2 3 1 3 -5 -2 4 1 5 1 2 3 4 5 1 0 1 0 1
样例输出 1
Case #1: -25 Case #2: 6