#P10493. Bloxorz II

    ID: 9843 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>O2优化广度优先搜索,BFS

Bloxorz II

题目描述

由于大灾难的发生,科学院已经连续有很多年没有新生了(这个世界中的科学院其实也 有大学的职能)。于是这一年的新生测试就有里程碑一样的意义。作为科学院的顶级信息专 家,这一任务自然落到了你的头上。思来想去,你决定出这样的一个题,那就是 Bloxorz 游戏。

所谓 Bloxorz 游戏,如下图所示,就是在一个平台上有一个作为目标的 1×1 的洞,以 及一个大小为 2×1×1 的长方体。长方体可以沿着边在平台上滚动,但是不能与平台失去接触面。

下面这张图反映了上图中的长方体向右滚动之后的局面。

而下面这张图就反映了向前方滚动之后的局面。

任务就是让长方体进入目标洞。当然,这时长方体应该是竖立的。

滚动一次叫做一步。你的题目就是对于一个给定的局面,计算至少需要多少步才能把长 方体滚到目标洞里面去。自然,对于新生来说这个题是一个很难的题。

被你虐了的新生感到很不服气。于是他们想了一个更难的题来让你做:

有一个无限大的平台以及一个建立在上面的坐标系。现在目标洞在(0, 0)处,长方体的 位置和状态(竖立、与 x 轴平行还是与 y 轴平行)给定,计算至少需要多少步才能使长方体 进洞。

作为顶级信息专家......这当然难不倒你了。

输入格式

输入文件包含多组测试数据。

每组测试数据在一行内,格式为 C x y。其中 C 为一个字母,x 和 y 是两个整数。 这表示长方体覆盖住了平台上的格子(x, y),且其状态为 C。

若 C 为字母 U,表明长方体是竖立的。

若 C 为字母 V,表明长方体与 x 轴平行,且其覆盖的另一个格子为(x + 1, y)。

若 C 为字母 H,表明长方体与 y 轴平行,且其覆盖的另一个格子为(x, y + 1)。 输入文件以 EOF 结束。

输出格式

对于每组测试数据,在单独的一行内输出答案。

U 0 0
H 0 0 
V 1 0
0
4
1

提示

对于 20% 的数据,x,y100 \mid x \mid , \mid y \mid \le 100。 对于 100% 的数据,x,y109\mid x\mid , \mid y\mid \le 10^9,输入数据不超过 100 组。