#icpc2013summerday3f. [icpc2013summer_day3_f]Phutball

[icpc2013summer_day3_f]Phutball

好强的郁太君最近热衷于使用围棋盘玩的游戏。 但是,围棋和五子棋都完全赢不了朋友,所以决定对不太有名的Phuutball进行特别训练。 因为这个游戏是很难的游戏,所以我决定先进行特训,以便判定自己是否能在回合中获胜而结束。

游戏的胜利条件如下:

  • 白石不能跳到放置着黑石的地方。

  • 使用棋盘中央的19\times\1519×15部分。

  • 想要判定胜利条件的棋盘是在放置了一个白石和几个黑子的状态下提供的。

  • 终点是指棋盘的下端还是下端。(请参照下图。)

  • 把白石运到终点就胜利了。

  • 为了胜利做以下事情。

  • 白石可以进行1次以上的跳跃。

  • 跳跃可以跳过与白石邻接的8个方向(上下左右和斜上、斜下)的黑石中的某个。

  • 不能向黑石没有邻接的方向跳跃。

  • 被跳过的黑石每跳一次就从棋盘上除去。

  • 跳跃后的白石必须存在于终点或游戏盘上。

  • 即使连续有两个以上的黑石,也能像跨越它一样跳跃。

  • 白石不能跳到放置着黑石的地方。(在跳跃的方向上连续的黑石必须跳过去。)

圆形标记的地方可以跳跃,全部是球门地点,但是十字印的地方不是球门地点,也不是棋盘的内侧,所以不能跳跃。

你的工作是为了帮助盐田君的特训,写一个能不能到达终点的判定和要求达到终点的最小跳跃次数的程序。