#Lutece2774. 交互问题
交互问题
Migrated from Lutece 2774 交互问题
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
maimai是一款老少皆宜的街机音乐游戏,2028年,maimai的国内版本已经更新到舞萌DX 2028。
舞萌DX 2028共有 个按键,编号为 ,其键位分布可以看成在一个环上顺时针均匀排布,第 号按键与第 和 号按键相邻,特别地, 号按键与 号按键相邻。相邻按键距离为1,按键宽度忽略不计。
TAP是舞萌DX 2028中最基本的音符,当其落在某一按键处,击打该按键即可得分。多个TAP构成了一个谱面。长度为 的谱面可用序列 表示,表示按时间顺序,第 个TAP出现在第 号按键。在此基础上,定义长度为 的交互谱面 $A_x=(a_1,a_2,...,a_n)(a_i\not =a_{i+1},i\in [1,n-1])$ ,即任意两个相继出现的TAP不能落在同一按键处。
对某一长度为 的谱面,定义其手法 ,表示玩家用第 只手击打第 个TAP,类似地,交互手法定义为 $K_x=(k_1,k_2,...,k_n)(k_i\not =k_{i+1},i\in [1,n-1])$ ,即任意两个相继出现的TAP不能用同一只手击打。
为了深入研究交互,N3ko1662研制了一部机器,该机器呈环形,拥有三条可以击打按键的机械臂,机械臂可绕轴转动(与钟表指针类似)。N3ko1662打算用它自动击打交互谱面。
规定该机器击打交互谱面时需遵守以下规则:
- 不移动的机械臂始终停在某个按键上。
- 在击打第 个TAP后到击打第 个TAP前(包括第一次),仅有一条机械臂可移动,该机械臂会移动到第 个TAP所在位置,击打完该TAP后停止移动。
- 机械臂之间可以跨越、重合,如果已经有一条机械臂停在某个按键上,另一条机械臂也可以击打该按键。
- 必须使用交互手法,即同一机械臂不能连续击打两次。
为了节约电量,N3ko1662希望在符合规则的基础上,三条机械臂移动总距离之和最小。给出一个交互谱面和三条机械臂的初始位置,请你计算并输出这个最小值。
Input
第一行两个整数 ,表示交互谱面长度和舞萌DX 2028的按键个数, ,。
第二行三个整数 ,表示三条机械臂初始所在的按键, , 互不相同。
第三行 个整数 ,表示一个长度为 的交互谱面, ,。
Output
一个整数,表示三条机械臂移动总距离之和的最小值。
Samples
5 8
1 2 3
1 2 3 4 8
3
Note
对于样例,给机械臂编号为1,2,3,则交互手法 对应的总移动距离为3。
Resources
2022 UESTC ICPC Training for Dynamic Programming