A game is played by a cat and a mouse named Cat and Mouse.
The environment is represented by a grid
of size rows x
cols
, where each element is a wall, floor, player (Cat, Mouse), or food.
'C'
(Cat),'M'
(Mouse).
'.'
and can be walked on.
'#'
and cannot be walked on.
'F'
and can be walked on.'C'
, 'M'
, and
'F'
in grid
.
Mouse and Cat play according to the following rules:
grid
.
catJump, mouseJump
are the maximum lengths Cat and Mouse can jump
at a time, respectively. Cat and Mouse can jump less than the maximum length.
The game can end in 4 ways:
Given a rows x cols
matrix grid
and two integers catJump
and mouseJump
, return true
if Mouse can win the game
if both Cat and Mouse play optimally, otherwise return false
.
Example 1:
Input: grid = ["####F","#C...","M...."], catJump = 1, mouseJump = 2 Output: true Explanation: Cat cannot catch Mouse on its turn nor can it get the food before Mouse.
Example 2:
Input: grid = ["M.C...F"], catJump = 1, mouseJump = 4 Output: true
Example 3:
Input: grid = ["M.C...F"], catJump = 1, mouseJump = 3 Output: false
Example 4:
Input: grid = ["C...#","...#F","....#","M...."], catJump = 2, mouseJump = 5 Output: false
Example 5:
Input: grid = [".M...","..#..","#..#.","C#.#.","...#F"], catJump = 3, mouseJump = 1 Output: true
Constraints:
rows == grid.length
cols = grid[i].length
1 <= rows, cols <= 8
grid[i][j]
consist only of characters 'C'
,
'M'
, 'F'
, '.'
, and '#'
.
'C'
, 'M'
, and
'F'
in grid
.
1 <= catJump, mouseJump <= 8