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$。