Problem Statement
The floor is a grid of cells with R rows and C columns. Little Liz occupies a position in this grid. She can move up, down, left, or right. (She cannot move diagonally.) To ensure that each cell gets the appropriate amount of paint, Liz should visit each cell exactly K times. Liz visits a cell whenever she moves into it. Liz also visits a cell if she begins her walk on it. Liz can begin and end on any cell.
If it is possible to paint the room in the required way, return "Paint". Otherwise, return "Cannot paint". (All quotes are for clarity only.)
Definition
- Class:
- PaintTheRoom
- Method:
- canPaintEvenly
- Parameters:
- int, int, int
- Returns:
- String
- Method signature:
- String canPaintEvenly(int R, int C, int K)
- (be sure your method is public)
Constraints
- R will be between 1 and 50, inclusive.
- C will be between 1 and 50, inclusive.
- K will be between 1 and 50, inclusive.
Examples
1
1
1
Returns: "Paint"
There is only one cell in this grid. By starting on the cell, Little Liz visits it once.
1
1
2
Returns: "Cannot paint"
This is the same case as Example 0, but now the cell must be visited twice. This is impossible.
1
2
2
Returns: "Paint"
There are two cells, and they are in the same row. One possible solution is to start on the left cell, then move right, then left, then right. This visits each cell twice, as required.
2
2
3
Returns: "Paint"
1
1
1
Returns: "Paint"
1
1
2
Returns: "Cannot paint"
1
1
3
Returns: "Cannot paint"
1
2
1
Returns: "Paint"
2
1
2
Returns: "Paint"
1
2
3
Returns: "Paint"
1
3
1
Returns: "Paint"
1
3
2
Returns: "Cannot paint"
1
3
3
Returns: "Cannot paint"
4
1
1
Returns: "Paint"
1
4
2
Returns: "Paint"
1
4
3
Returns: "Paint"
2
2
1
Returns: "Paint"
2
2
2
Returns: "Paint"
2
2
3
Returns: "Paint"
3
2
1
Returns: "Paint"
3
2
2
Returns: "Paint"
3
2
3
Returns: "Paint"
4
2
1
Returns: "Paint"
2
4
2
Returns: "Paint"
2
4
3
Returns: "Paint"
3
3
1
Returns: "Paint"
3
3
2
Returns: "Cannot paint"
3
3
3
Returns: "Cannot paint"
3
4
1
Returns: "Paint"
4
3
2
Returns: "Paint"
4
3
3
Returns: "Paint"
4
4
1
Returns: "Paint"
4
4
2
Returns: "Paint"
4
4
3
Returns: "Paint"
50
50
50
Returns: "Paint"
50
50
1
Returns: "Paint"
49
49
50
Returns: "Cannot paint"
49
49
1
Returns: "Paint"
50
49
49
Returns: "Paint"
47
1
3
Returns: "Cannot paint"
1
47
2
Returns: "Cannot paint"
48
1
2
Returns: "Paint"
1
48
2
Returns: "Paint"
49
1
2
Returns: "Cannot paint"
1
49
3
Returns: "Cannot paint"
50
1
2
Returns: "Paint"
1
50
3
Returns: "Paint"
31
30
9
Returns: "Paint"
36
7
22
Returns: "Paint"
5
21
17
Returns: "Cannot paint"
4
1
16
Returns: "Paint"
17
24
13
Returns: "Paint"
23
35
7
Returns: "Cannot paint"
30
21
20
Returns: "Paint"
36
19
14
Returns: "Paint"
2
3
3
Returns: "Paint"
44
26
22
Returns: "Paint"
16
32
9
Returns: "Paint"
2
36
38
Returns: "Paint"
34
10
19
Returns: "Paint"
42
33
8
Returns: "Paint"
30
43
10
Returns: "Paint"
39
49
18
Returns: "Cannot paint"
7
25
22
Returns: "Cannot paint"
5
5
5
Returns: "Cannot paint"
1
4
6
Returns: "Paint"
1
8
7
Returns: "Paint"
5
4
5
Returns: "Paint"
1
4
4
Returns: "Paint"
3
5
10
Returns: "Cannot paint"
1
2
5
Returns: "Paint"
5
5
3
Returns: "Cannot paint"
1
6
2
Returns: "Paint"
3
5
3
Returns: "Cannot paint"
1
4
10
Returns: "Paint"
1
10
2
Returns: "Paint"
1
5
2
Returns: "Cannot paint"
1
6
4
Returns: "Paint"
3
5
2
Returns: "Cannot paint"
4
1
3
Returns: "Paint"
3
5
1
Returns: "Paint"
1
4
9
Returns: "Paint"
8
8
8
Returns: "Paint"
4
1
2
Returns: "Paint"
3
3
4
Returns: "Cannot paint"
1
4
5
Returns: "Paint"
1
8
5
Returns: "Paint"
1
4
50
Returns: "Paint"
1
6
5
Returns: "Paint"
4
1
5
Returns: "Paint"
3
14
2
Returns: "Paint"
2
5
1
Returns: "Paint"
1
6
12
Returns: "Paint"
49
49
49
Returns: "Cannot paint"