#2076. Unlocking Blocks
Unlocking Blocks
题目描述
奶牛们一个鲜为人知的事实是它们爱解谜!生日时农夫约翰给了她一个有趣的机械锁给她解决。锁由三个模块构成,每一个模块都由的小立方体粘连而成。每一个模块都是一个"连通"的模型,那么,你就可以通过在模型上的小正方体间向北、南、东或西走而从模型的一个小正方形到达模型上的任何其他小正方形。
一个模块可以多次向东西南北滑动一个单位。拼图的目标是滑动模块使其分离,即使它们的边界框不再有任何重叠。给定三个模块的形状与位置,请你帮助找到达到目标需要的最小滑动次数 。
输入格式
第 行:三个空格分隔的整数:、和 分别描述组成对象 、和 的单位正方形的数量。
第 行:每一行都描述了作为对象 一部分的单个正方形西南角的 位置。所有坐标都在 范围内。
第 行:这些行中的每一行都描述了作为对象 一部分的单个正方形西南角的 位置。所有坐标都在范围
第 行:这些行中的每一行都描述了作为对象 一部分的单个正方形的西南角的 位置。所有坐标都位于范围 。
第行:三个整数表示组成模块的小正方体数目。
第行到第行:读入一对坐标(,每对坐标表示组成模块的一个小正方体西南角落的位置。所有坐标在之间。
第行到第行:读入一对坐标(,每对坐标表示组成模块的一个小正方体西南角落的位置。所有坐标在之间。
第行到第…
输出格式
第 行:分离三个对象所需的最小移动次数,如果无法分离对象,则为 。
样例
输入样例
12 3 5
0 0
1 0
2 0
3 0
3 1
0 1
0 2
0 3
0 4
1 4
2 4
3 4
2 1
2 2
1 2
2 3
3 3
4 3
4 4
4 2
输出样例
5
提示
对象 由 个正方形组成,对象 由 个正方形组成,对象 由 个正方形组成。物体的形状如上图所示。
如果我们将对象 向东滑动一个位置,然后将对象 向北滑动一个位置,然后将对象 向西滑动三个位置,那么这三个对象的边界框将不再共享任何重叠。
模块由块小正方体制造,模块由块小正方体制造,模块由块小正方体制造。最后的图像在如上。(吃图?!)
A:模块1方块 B:模块2方块 C:模块3方块 *:啥都木有
A A A A C
A * C C C
A B B * C
A * B A *
A A A A *
假如我们把模块向东移一个单位,然后把模块向北移一个单位,然后把模块向西移三个单位,就满足了条件。