Bovidian 船长正在拯救她的船员,Beefalo 博士。
和所有伟大的冒险故事一样,这个故事也是发生在一个 2D 平面上的。
这个平面是 的格子组成的网格,代表着船长的世界的一个侧视图。
有些格子是空的,另一些则是实心的,并且不能直接通过。
很不幸的是,船长跳不起来。她必须遵守这个世界的特殊物理法则。
- 如果船长的正下方没有方块(换句话说,即使她正在网格的边缘),那么她就会掉入宇宙中,同时意味着冒险失败。
- 如果船长的正下方的方块是空的,那么她就会掉到这个方块。
- 在不满足 1. 与 2. 的情况下,船长可以做以下的事情:
- 如果左边(或右边)的方格是空的,那么她可以走到那个格子。
- 船长可以翻转重力的方向。
当船长改变翻转重力的方向时,我们就改变船长“下方”的定义。
“下方”的定义只能是两种:
- 比船长位置所在的方格的行编号更大的格子。
- 比船长位置所在的方格的行编号更小的格子。
一开始的时候,“下方”的定义是比船长位置所在方格的行编号更大的格子。
Beefalo 博士正迷失在这个世界中的某一处,请帮助船长从起点到达博士的地方。
如果可以到达,请输出最少需要的翻转重力的次数。
如果不可以到达,请输出 。