Pocky游戏
题号:NC15963
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

社交活动中有n个男孩和n个女孩。
他们玩的其中一场比赛是通过pocky传递橡皮筋(pocky是一种长条饼干)。
与正常的社交活动游戏不同,只有两支队伍,男队和女队。
游戏规则如下,
1.两队都有n个编号从1到n的马甲。
2.对手队将给出长度为m的整数序列a1 ... am。所有数字将在1到n(含n)之间,并且所有相邻数字都不相同(对于所有1≤i<m,ai≠ai+1)。
3.在对手队给出序列之后,另一队开始计划背心的穿着策略。请注意,团队成员在游戏过程中不能交换背心。
4.当比赛开始时,橡皮筋将被放在穿着a1编号的背心的队员嘴中的pocky上。 然后,穿着a1编号的背心的队员必须将橡皮筋传递给穿着a2编号的背心的队员,而不能用手,如此进行下去.....。当橡皮筋通过m - 1次并且已经在穿着am编号的背心的队员的pocky上时,游戏将结束。
 5.第一队完成是胜利的队。
Shiky是算法大师。他从未在任何战略游戏中失利。他相信他会像以前一样赢得这场比赛。
他发现两名队员之间的身高差距越大,他们之间的橡皮筋越难通过。
基于这一观察,他定义了一次传递橡皮筋的难度为身高差的绝对值。

你是Shiky对手队伍的领导者。
你知道Shiky编写了一个程序来计算他的团队难度的最小可能总和。
既然你不想输,你决定为你的团队编写一个具有相同功能的程序。

PS :由于Shiky有女朋友,所以你不能引诱他获取源代码,而且他女朋友没参加这场比赛(2333333

输入描述:

第一行有两个整数n和m。 它表明有n个男孩和n个女孩,而Shiky的团队会给你一个长度为m的序列。
第二行有n个整数h1,h2 ...,hn,表示你所有团队成员的身高。
第三行有m个整数a1,a2 ...,am,表示Shiky团队给出的序列。

输出描述:

输出一个整数表示团队难度的最小可能总和。
示例1

输入

复制
3 3
170 175 180
1 2 3

输出

复制
10

说明

直接从小到大排,难度总和是(175-170)+(180-175)=10
示例2

输入

复制
4 3
165 162 161 170
3 4 3

输出

复制
2

说明

有一种可能的身高排列是170,165,162,161,所以难度总和是(162-161)+(162-161)=2
示例3

输入

复制
8 15
240 120 140 160 180 155 173 172
5 1 4 1 2 3 4 8 7 3 6 4 1 2 8

输出

复制
258

备注:

1 ≤ n ≤ 20
2 ≤ m ≤ 1000
120 ≤ hi ≤ 240
1 ≤ ai ≤ n
ai ≠ ai+1 (1 ≤ i ≤ m-1)