A38785.最小化两数组的距离

普及+/提高

官方

通过率:35.48%

时间限制:1.00s

内存限制:128MB

题目描述

给定一个长度为 NN 的二元组序列 AA[(Ax1,Ay1),(Ax2,Ay2),,(AxN,AyN)]\tt{[(Ax_1, Ay_1), (Ax_2, Ay_2), \ldots, (Ax_N, Ay_N)]};
和一个长度为 NN 的二元组序列 BB[(Bx1,By1),(Bx2,By2),,(BxN,ByN)]\tt{[(Bx_1, By_1), (Bx_2, By_2), \ldots, (Bx_N, By_N)]}

现在你可以从 AA 中选择 11 个二元组与 BB 中的 11 个二元组进行交换;或者从 AA 中选择 22 个二元组与 BB 中的 22 个二元组进行交换;或者什么也不做。

令:

S=i=1NAxii=1NBxiS = \left \vert {\sum_{i=1}^{N} Ax_i - \sum_{i=1}^{N} Bx_i} \right \vert

T=i=1NAyii=1NByiT = \left \vert {\sum_{i=1}^{N} Ay_i - \sum_{i=1}^{N} By_i} \right \vert

你可以通过以上方法最小化 SS 的值;若两种操作方案得到的 SS 的值相同,则选择 TT 最小的那种;最后输出最小化后的 SSTT

数据范围\large{数据范围}

  • 2N10002 \le N \le 1000
  • 0Axi,Ayi,Bxi,Byi5000 \le Ax_i, Ay_i, Bx_i, By_i \le 500
  • 所有输入均为整数

输入格式

对于每个测试文件,格式如下:

N\tt{N}
Ax1 Ay1\tt{Ax_1\ Ay_1}
Ax2 Ay2\tt{Ax_2\ Ay_2}
\tt{\vdots}
AxN AyN\tt{Ax_N\ Ay_N}
Bx1 By1\tt{Bx_1\ By_1}
Bx2 By2\tt{Bx_2\ By_2}
\tt{\vdots}
BxN ByN\tt{Bx_N\ By_N}

输出格式

对于每个测试用例,在单独的一行中输出最小化的 SSTT 的值,中间用空格隔开。

输入输出样例

  • 输入#1

    2
    1 4
    2 3
    4 1
    3 2

    输出#1

    0 0
  • 输入#2

    4
    2 1
    3 2
    7 4
    5 3
    13 2
    11 1
    17 3
    19 4

    输出#2

    1 0
  • 输入#3

    7
    68 50
    14 90
    88 50
    79 13
    5 64
    11 72
    40 38
    42 49
    63 71
    86 13
    55 93
    9 77
    1 2
    2 45

    输出#3

    1 27

说明/提示

样例 1\bf{样例\ 1:}

未交换元素时 S=37=4, T=73=4S = \vert 3 - 7 \vert = 4,\ T = \vert 7 - 3 \vert = 4
我们交换 A2A_2B1B_1
AA 变为 [(1,4),(4,1)]\tt{[(1, 4), (4, 1)]}BB 变为 [(2,3),(3,2)]\tt{[(2, 3), (3, 2)]}
此时 S=55=0, T=55=0S = \vert 5 - 5 \vert = 0,\ T = \vert 5 - 5 \vert = 0

样例 2\bf{样例\ 2:}

未交换元素时 S=1760=43, T=1010=0S = \vert 17 - 60 \vert = 43,\ T = \vert 10 - 10 \vert = 0
我们交换 A1A_1B2B_2 以及 A4A_4B3B_3
AA 变为 [(11,1),(3,2),(7,4),(17,3)]\tt{[(11, 1), (3, 2), (7, 4), (17, 3)]}BB 变为 [(13,2),(2,1),(5,3),(19,4)]\tt{[(13, 2), (2, 1), (5, 3), (19, 4)]}
此时 S=3839=1, T=1010=0S = \vert 38 - 39 \vert = 1,\ T = \vert 10 - 10 \vert = 0

首页