#joi2019hod. [joi2019ho_d]コイン集め (Coin Collecting)
[joi2019ho_d]コイン集め (Coin Collecting)
目标达成的最小操作次数
给定硬币的数量和当前硬币所在的位置,编写程序以确定达到目标所需的最小操作次数。
输入
输入以以下格式从标准输入中提供:
输出
在标准输出中以1行输出为目标所需的最小操作次数。
约束
- 。
- ()。
- ()。
子任务
- ( 分) 。
- ( 分) 。
- ( 分) 没有附加约束。
示例输入 1
3
0 0
0 4
4 0
2 1
2 5
-1 1
示例输出 1
15
在此示例中,存在6个硬币并且它们被放置在下图所示的位置上。目标是将硬币收集到用粗线框示的位置。
例如,可以通过以下方式移动硬币来在 15 步操作内实现目标:
- 第1个硬币:() → () → () → ()
- 第2个硬币:() → () → () → () → () → ()
- 第3个硬币:() → () → ()
- 第5个硬币:() → () → () → ()
- 第6个硬币:() → () → ()
无法在14步或更少的操作中实现目标,因此输出15。
示例输入 2
4
2 1
2 1
2 1
3 1
3 1
3 1
3 1
3 1
示例输出 2
9
同一个位置可能放置多个硬币。
示例输入 3
5
1000000000 1000000000
-1000000000 1000000000
-1000000000 -1000000000
1000000000 -1000000000
-1 -5
-2 2
2 8
4 7
-2 5
7 3
示例输出 3
8000000029