小蓝的工作是管理共享单车。现在,他要将 n 辆没有被妥善停放的共享单车,搬运到 m 个停车点。
小蓝的管理区域是一条街道,可以将其视为一条数轴。第 i 辆单车位于位置 ai,第 j 个停车点位于位置 bj。
将一辆位于位置 x 的单车搬运到位置 y 的停车点,需要消耗 |x ? y| 的体力。
每个停车点最多只能停放一辆单车。已知 n ≤ m,因此一定可以为每辆单车分配一个停车点。你需要计算:在合理分配单车与停车点的情况下,小蓝至少需要花费多少体力。
输入共 3 行。
第一行包含两个正整数 n, m,分别表示单车的数量和停车点的数量。
第二行包含 n 个正整数 a1, a2,. . . , an,表示每辆单车所在的位置。
第三行包含 m 个正整数 b1, b2,. . . , bm,表示各个停车点所在的位置
输出一行一个正整数,表示小蓝至少需要花费的体力。
3 4 1 3 7 2 4 5 8
3
【样例说明 1】
一种最优分配方案如下:
• 将位置为 1 的单车搬运到位置为 2 的停车点;
• 将位置为 3 的单车搬运到位置为 4 的停车点;
• 将位置为 7 的单车搬运到位置为 8 的停车点。
此时总花费为:
|1 - 2| + |3 - 4| + |7 - 8| =1 + 1 + 1 = 3
因此,最少需要花费的体力为 3。
【样例输入 2】
3 4
3 1 3
5 2 2 8
【样例输出 2】
4
【评测用例规模与约定】
对于 40% 的评测用例,n, m ≤ 8。
另有 20% 的评测用例,n = m。
对于所有的评测用例,1 ≤ n ≤ m ≤ 5000,1 ≤ ai, bi ≤ 109。