P16270 [蓝桥杯 2026 省 Java B 组] 共享单车

题目描述

小蓝的工作是管理共享单车。现在,他要将 $n$ 辆没有被妥善停放的共享单车,搬运到 $m$ 个停车点。 小蓝的管理区域是一条街道,可以将其视为一条数轴。第 $i$ 辆单车位于位置 $a_i$,第 $j$ 个停车点位于位置 $b_j$。 将一辆位于位置 $x$ 的单车搬运到位置 $y$ 的停车点,需要消耗 $|x - y|$ 的体力。 每个停车点最多只能停放一辆单车。已知 $n \leq m$,因此一定可以为每辆单车分配一个停车点。你需要计算:在合理分配单车与停车点的情况下,小蓝至少需要花费多少体力。

输入格式

输入共 3 行。 第一行包含两个正整数 $n, m$,分别表示单车的数量和停车点的数量。 第二行包含 $n$ 个正整数 $a_1, a_2, \dots, a_n$,表示每辆单车所在的位置。 第三行包含 $m$ 个正整数 $b_1, b_2, \dots, b_m$,表示各个停车点所在的位置。

输出格式

输出一行一个正整数,表示小蓝至少需要花费的体力。

说明/提示

### 【样例说明 1】 一种最优分配方案如下: - 将位置为 $1$ 的单车搬运到位置为 $2$ 的停车点; - 将位置为 $3$ 的单车搬运到位置为 $4$ 的停车点; - 将位置为 $7$ 的单车搬运到位置为 $8$ 的停车点。 此时总花费为: $$ \begin{aligned} |1 - 2| + |3 - 4| + |7 - 8| = 1 + 1 + 1 = 3 \end{aligned} $$ 因此,最少需要花费的体力为 $3$。 ### 【评测用例规模与约定】 对于 $40\%$ 的评测用例,$n, m \leq 8$。 另有 $20\%$ 的评测用例,$n = m$。 对于所有的评测用例,$1 \leq n \leq m \leq 5000$,$1 \leq a_i, b_i \leq 10^9$。