#arc073d. [arc073_d]Many Moves
[arc073_d]Many Moves
题目描述
有一排个方格,从左到右编号为。
你有两个棋子,初始时分别放在方格和上。你将按照接收到的顺序处理个查询,每个查询有以下形式:
- 给定整数,将其中一个棋子移动到方格上。
在这里,每移动一个棋子走过一个方格需要一秒钟。也就是说,从方格移动到方格需要秒钟。
你的目标是以最短的时间处理所有的查询。
你只能在收到查询后移动棋子,不能同时移动两个棋子。同时,不允许重新排列查询的顺序。然而,允许两个棋子同时在同一个方格上。
约束条件
输入
从标准输入中以以下格式给出输入:
...
输出
设处理所有查询的最短时间为秒。请打印。
示例输入1
8 3 1 8
3 5 1
示例输出1
7
所有查询可以在7秒内处理完成,具体操作如下:
- 将方格上的棋子移动到方格
- 将方格上的棋子移动到方格
- 将方格上的棋子移动到方格
示例输入2
9 2 1 9
5 1
示例输出2
4
应该首先移动方格上的棋子。
示例输入3
9 2 1 9
5 9
示例输出3
4
应该首先移动方格上的棋子。
示例输入4
11 16 8 1
1 1 5 1 11 4 5 2 5 3 3 3 5 5 6 7
示例输出4
21