#arc038b. [arc038_b]マス目と駒
[arc038_b]マス目と駒
问题描述
有一个 行 列的棋盘和一个棋子。我们将第 行第 列的格子称为 格。其中,左上角的格子是 ,右下角的格子是 。此外,除了 外,一些格子上放着障碍物。喜欢游戏的兄弟姐妹打算用这个棋盘和棋子玩以下游戏:
- 最开始,把棋子放在 格上。
- 在自己的回合,玩家必须把棋子移动到下方格子、右下方格子或右侧格子中没有障碍物的任意一个格子中。也就是说,当棋子在 格上时,必须把它移动到 或者 或者 中没有障碍物的任意一个格子中。但是,在这种情况下,不能把棋子移出棋盘。也就是说,当 时,不能向下或向右下移动;当 时,不能向右下或向右移动。
- 轮流进行,当某个玩家无法移动棋子时,他就输了(对方赢了)。
两位玩家都采取最佳策略争取胜利时,先手和后手哪个会取得胜利?
输入
从标准输入读入输入数据。
输入的格式如下:
.. .. : ..
- 第 1 行包含两个整数 和 ,以空格分隔。表示棋盘的行数为 ,列数为 。
- 第 2 行到第 行,每行包含 个字符,表示棋盘的信息。其中,第 行包含 个字符,其中的第 个字符 表示格子 的信息。字符
#
表示格子 上有障碍物,字符.
表示格子 上没有障碍物。保证 是.
。
部分分
本问题设置了部分分。
- 解决了 且 的数据集 1,可以得到 30 分。
- 如果通过了所有测试用例,则可以额外获得 70 分。
输出
如果先手能够获胜,则输出 First
;如果后手能够获胜,则输出 Second
。输出末尾要换行。
输入样例1
2 3
.#.
...
输出样例1
First
游戏的进行如下所示。o
表示棋子的位置。
o#.
...
- 第 1 回合:棋子在 格上。可以将棋子向下或向右下移动。先手选择将棋子向下移动。
.#.
o..
- 第 2 回合:棋子在 格上。只能将棋子向右移动。后手选择将棋子向右移动。
.#.
.o.
- 第 3 回合:棋子在 格上。只能将棋子向右移动。先手选择将棋子向右移动。
.#.
..o
- 第 4 回合:棋子在 格上。后手无法移动棋子,所以判为输。
无论后手如何移动棋子,先手都可以通过合适的移动方式取胜,因此输出 First
。
输入样例2
4 4
....
...#
....
.#..
输出样例2
Second
无论先手如何移动棋子,后手都可以通过合适的移动方式取胜,因此输出 Second
。
输入样例3
11 44
............................................
............................................
............................................
.....#.....#####....####.....####....####...
....#.#....#....#..#....#...#....#..#....#..
....#.#....#....#..#.............#..#....#..
...#####...#####...#..........###....####...
...#...#...#....#..#.............#..#....#..
..#.....#..#....#..#....#...#....#..#....#..
..#.....#..#....#...####.....####....####...
............................................
输出样例3
Second