U416838 指针

题目背景

**时间限制:** 1.0 秒 **空间限制:** 512 MB

题目描述

有 $10^9$ 台设备分布在一条数轴上,第 $i$ 台设备的坐标为 $i$。有 $n$ 位维修工,初始时第 $i$ 位维修工的位置为 $a_i$。 这些设备共发生了 $m$ 次故障,第 $j$ 次故障的设备为 $b_j$,你需要指定一名维修工维修设备 $b_j$,他将从他当前所在的位置移动到位置 $b_j$。维修工从位置 $x$ 移动到位置 $y$ 需要花费 $|x-y|$ 的代价。 你需要合理调配维修工,在每次故障发生后及时完成维修,即必须**依次**完成 $m$ 次维修。求所有维修的代价总和的最小值。

输入格式

从标准输入读入数据。 输入的第一行包含两个正整数 $n,m$,分别表示维修工个数和故障次数。 输入的第二行包含 $n$ 个正整数 $a_1,a_2,...,a_n$,分别表示每个维修工的初始位置。 输入的第三行包含 $m$ 个正整数 $b_1,b_2,...,b_m$,分别表示每次故障的设备。

输出格式

输出到标准输出。 输出一行一个非负整数表示代价总和的最小值。

说明/提示

### 样例 1 解释 - 第 $1$ 次维修,维修工 $1$ 移动到位置 $4$,代价为 $|3-4|=1$; - 第 $2$ 次维修,维修工 $2$ 移动到位置 $8$,代价为 $|6-8|=2$; - 第 $3$ 次维修,维修工 $1$ 移动到位置 $1$,代价为 $|4-1|=3$; - 第 $4$ 次维修,维修工 $1$ 移动到位置 $5$,代价为 $|1-5|=4$; - 第 $5$ 次维修,维修工 $2$ 移动到位置 $7$,代价为 $|8-7|=1$; 代价总和为 $1+2+3+4+1=11$。 ### 子任务 对于所有测试数据,满足 $1\le n,m\le 600,~ 1\le a_i,b_j\le 10^9$。 | 子任务编号 | 分值 | $n\le$ | $m \le$ | $a_i,b_j\le$ | | :----: | :-----: | :-----: |:-----: |:-----: | | 1 |10 | $10$ | $6$ |$10^5$ | | 2 |10 | $2$ | $600$ | $10^5$ | | 3 |10 | $3$ | $600$ | $10^5$ | | 4 |10 | $5$ | $100$ | $10$ | | 5 |25 | $200$ | $200$ |$10^5$ | | 6 |35 | $600$ | $600$ |$10^9$ |