AT_joi2019ho_d.コイン集め (Coin Collecting)
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 JOI 氏的收藏室中,有一张巨大的桌子,上面放满了珍贵的硬币。为了清理这张桌子,JOI 氏决定要整理这些硬币,把它们排列整齐。
桌面的大小是 2000000001×2000000001,形成一个庞大的网格。列从左到右的编号为 −1000000000 到 1000000000,行从下到上的编号为 −1000000000 到 1000000000。我们用 (x,y) 表示网格中列号为 x,行号为 y 的位置。
桌子上一共有 2N 枚硬币,现在第 i 枚硬币 (1≤i≤2N) 位于位置 (Xi,Yi)。JOI 氏的目标是将这些硬币放到网格左上角的一个小方块中,每个格子恰好放一个。这个小方块由 (x,y) 表示,其中 1≤x≤N 且 1≤y≤2。
为了避免损坏硬币,仅能进行以下操作:选择一枚硬币,并将它移动到与其当前所在位置相邻的另一个格子(即共享一条边的格子)。移动过程中,可以暂时将多个硬币堆叠在一起。JOI 氏希望用尽量少的操作次数实现目标。
现在,给出硬币的数量和它们的初始位置,请编写一个程序,计算用最少多少次操作可以将硬币移到目标位置。
输入格式
从标准输入中读取数据,格式如下:
N X1 Y1 ⋮ X2N Y2N
输出格式
输出一行,表示达成目标位置所需的最小操作次数。
输入输出样例
输入#1
3 0 0 0 4 4 0 2 1 2 5 -1 1
输出#1
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
说明/提示
-
条件限制:
- 1≤N≤100000。
- −1000000000≤Xi≤1000000000 (1≤i≤2N)。
- −1000000000≤Yi≤1000000000 (1≤i≤2N)。
-
子任务:
- (8 分)N≤10。
- (29 分)N≤1000。
- (63 分)没有其他额外的约束条件。
示例说明 1
在这个例子中,6 枚硬币的初始位置如下图所示:
我们的目标是将硬币移到粗框标记的区域。例如,通过以下路径移动硬币,可以在 15 次操作后实现目标:
- 第 1 枚硬币:(0,0)→(1,0)→(1,1)→(1,2)
- 第 2 枚硬币:(0,4)→(1,4)→(1,3)→(2,3)→(3,3)→(3,2)
- 第 3 枚硬币:(4,0)→(4,1)→(3,1)
- 第 5 枚硬币:(2,5)→(2,4)→(2,3)→(2,2)
- 第 6 枚硬币:(−1,1)→(0,1)→(1,1)
无法在 14 次或更少的操作内达成目标,因此输出为 15。
示例说明 2
注意,移动过程中可能会有多个硬币暂时放在同一个格子中。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?