问题 5713 --接苹果

5713: 接苹果

题目描述

尼克在 Scratch中设计了一个接苹果游戏。有n个苹果从屏幕顶部的某一处垂直往下掉,一直掉到屏幕底部,在前一个苹果到达屏幕底部后,下一个苹果才开始往下掉。在屏幕底部有一个篮子,玩家可以左右移动篮子,但不能上下移动。当苹果掉到屏幕底部时,如果篮子正好在相同的地方,则认为该苹果被成功接起。 游戏的目标是用最少的移动步数接起掉下来的苹果。 Scratch 舞台中心点的坐标值为(0,0),第一个数代表x坐标,第二个数代表y坐标。x坐标的最小值位于舞台最左端为-240,最大值位于舞台最右端为240。y坐标的最小值位于舞台最下端为-180,最大值位于舞台最上端为180。角色如果向左移动,x坐标值会减少,向右移动x坐标值则会增加。 篮子的初始位置在(x1,-180),苹果都从坐标(x2,180)往下掉。 编写一个程序,求出接起所有苹果时,篮子最少的移动步数。

输入

共三行。 第一行,一个整数x,(-240≤x1≤240),表示篮子的初始x坐标。 第二行,一个整数n(1≤n≤10^6),表示苹果的个数。 第三行,n个整数x(-240≤x2≤240),表示按照苹果下落顺序描述每个苹果的x坐标,数与数之间以一个空格隔开。

输出

一行,一个整数,表示接起所有苹果,篮子最少的移动步数。

样例输入输出

输入#1 复制
8
4
0 -1 -3 10
输出#1 复制
24

提示

序号 标题 作者 发表时间 费用 订购数 操作