lqb#P26013. 共享单车

共享单车

题目描述

小蓝的工作是管理共享单车。现在,他要将 nn 辆没有被妥善停放的共享单车,搬运到 mm 个停车点。

小蓝的管理区域是一条街道,可以将其视为一条数轴。第 ii 辆单车位于位置 aia_i,第 jj 个停车点位于位置 bjb_j

将一辆位于位置 xx 的单车搬运到位置 yy 的停车点,需要消耗 xy|x - y| 的体力。

每个停车点最多只能停放一辆单车。已知 nmn \leq m,因此一定可以为每辆单车分配一个停车点。你需要计算:在合理分配单车与停车点的情况下,小蓝至少需要花费多少体力。

输入格式

输入共 3 行。

第一行包含两个正整数 n,mn, m,分别表示单车的数量和停车点的数量。

第二行包含 nn 个正整数 a1,a2,,ana_1, a_2, \dots, a_n,表示每辆单车所在的位置。

第三行包含 mm 个正整数 b1,b2,,bmb_1, b_2, \dots, b_m,表示各个停车点所在的位置。

输出格式

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

3 4
1 3 7
2 4 5 8
3
3 4
3 1 3
5 2 2 8
4

解释 #1

一种最优分配方案如下:

  • 将位置为 11 的单车搬运到位置为 22 的停车点;
  • 将位置为 33 的单车搬运到位置为 44 的停车点;
  • 将位置为 77 的单车搬运到位置为 88 的停车点。

此时总花费为:

$$\begin{aligned} |1 - 2| + |3 - 4| + |7 - 8| = 1 + 1 + 1 = 3 \end{aligned}$$

因此,最少需要花费的体力为 33

数据范围

  • 对于 40%40\% 的评测用例,n,m8n, m \leq 8
  • 另有 20%20\% 的评测用例,n=mn = m
  • 对于所有的评测用例,1nm50001 \leq n \leq m \leq 50001ai,bi1091 \leq a_i, b_i \leq 10^9