Problem Statement
The desert spreads each year as follows:
- If a cell is desert, it remains desert forever.
- If a cell is forest and it is adjacent to at least one desert cell (in one of the four orthogonal directions), it becomes desert after one year.
- Otherwise the cell remains forest for another year.
Definition
- Class:
- Desertification
- Method:
- desertArea
- Parameters:
- String[], int
- Returns:
- int
- Method signature:
- int desertArea(String[] island, int T)
- (be sure your method is public)
Constraints
- island will contain between 1 and 10 elements, inclusive.
- Each element of island will contain between 1 and 10 characters, inclusive.
- Each character in island will be 'D' or 'F'.
- Each element of island will contain the same number of characters.
- T will be between 1 and 1,000,000,000, inclusive.
Examples
{"FFF", "FDF", "FFF"}
1
Returns: 5
After one year, the island will be: FDF DDD FDF
{"FFF", "FDF", "FFF"}
2
Returns: 9
All cells will be desert after two years.
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF"}
3
Returns: 90
{"FFFFFFFFFD","FFFFFFFFFF","FFFFFFDFFF","FDFFFFFFFF","FFFDFFFFFF","FFFDFFFDFF","FFFFFFFFFF","FFFFFFFFFF","DDFFFFFDFF","FFFFDFFFFF"}
3
Returns: 96
{"FD","DD","FF","FF","FD","DD","FF","DF","FF"}
3
Returns: 18
{"FFFFFFFFFF","FFFFFFDFFF","DFDDFFFFFD","FFFFFFFFFF","FFFFFFFFFF","DFFFFFFDFF","FFFDFFFDFF","FFFDFFDDFF","DDFFFFFDDF","FDFDDDFFFD"}
1
Returns: 64
{"FFFDFDF","DFFFFFF","FFFFFFF","FFDFFDF","FFFFFFF","FFFFFFF","FDFDDFF","FFFDDFF"}
2
Returns: 54
{"FFFFFFFFFF","FDFFFFFDFD","FFFFFDFDFF","FDFDDFFFDF","DFFFFDDFFF","DFDDDDDDFF","FFFFFDDDDF","DFFFFFFDFF","FFDFDDDFFF","FDFFFFDFDD"}
789630848
Returns: 100
{"DFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFD","FFFFFFFFDF","FFFFFFFFFF","FFFFFDFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF"}
10
Returns: 100
{"D","F","D"}
584975153
Returns: 3
{"FFDFDDDFFF","DDDFDDFDFF","FDDFFFFDDD","FFFDFDFDDF","FFFFDDDFDF","DFFDFFDDFD","DDFDFDFDFD","FFDFFFFDDD","FFDFDDFDFF","DFDFFFDFDF"}
10
Returns: 100
{"FDFDFDDDDD","DDFDDDFDFD","DDFFDFDDFF","FFDDDDDDDF","DFFDDDDFDD","FDDDDFDDFD","DFDDDDDDDF","DDFFFDDDDD","DFFDFFDDDD","DDDDDDFDDF"}
9
Returns: 100
{"FDFDFFDFDF","DDFFFFDDFD","FDDFFDFDFF","FDFFFFFDFF","DFDFFFFFFF","FFDDFFDDFD","FDFFDFDFDD","FDFFFFDFFF","FDFFFDDDFF","DFFFDFFFFD"}
11
Returns: 100
{"DDDDDFDDDD","FDDFFDDFDD","DDDDDDFFDD","DDDFDDDDDF","DDFFDFFDDD","DDDDDDDDDD","FDDDDDDFDD"}
6
Returns: 70
{"FFFFF","FFFFF","FFFFF","FFFFF","FFFFF","FFFFF"}
979193317
Returns: 0
{"FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFDDFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFD","FFFDDFFFFF","FFFFFFFFFF","FDFFFFFFFF"}
9
Returns: 100
{"F","F","F","F","F"}
2
Returns: 0
{"FDFFF","FFFFF","FFFFF","FFFFF"}
1
Returns: 4
{"DFFFFDFFFD","FDFDFDFFFF","DFDFFFFDFF","DDFFFDFDFF","FFFDDDDDFD","DDFFDFFFFF","DFFDDFFDFF","FFFDFDFFFD","FFDFDFFFFF","DFFDFFFDFD"}
7
Returns: 100
{"DFDDFFDDDD","DDFFFDDFDD","DDFDFFDFFF","FFFDFFDDFD","FDDDDDDDFD","DDDFFFDFDD","DDDDDDDFDF","DDDDDDDDDD","DDFFFDFDDF","DFDFDFDFDF"}
74026839
Returns: 100
{"D"}
2
Returns: 1
{"F","F","F","F","F","F"}
1
Returns: 0
{"FF"}
1
Returns: 0
{"FDFFFDDDDF","DDDDDFFFDD","DDDDDDFDFD","FFDDDDDDFF","FDDFDDDDDF","DDDDDFDDFD","FDFFFFFDDF","FDDFDFDDDD","FDDDFDDDDF","DDFFDFDDFD"}
488786973
Returns: 100
{"FF","FF","DF","FD"}
3
Returns: 8
{"F","F","F","F","D","F","F","D","F"}
2
Returns: 7
{"FFFF","FFFF"}
1
Returns: 0
{"FFFFFFF","FFFFFFF","FFFDFFF","FFFFFFF","FFFFFFF"}
2
Returns: 13
{"FFFFFF","FFFFFF","FFFFDD"}
2
Returns: 9
{"DFFDDDFFFF","DDDFFFDDFD","FFFFDFFFFD","FFFFFDFFFF","FDFDFDDFFF","FFFFFFDFFD","FDFFDDDFFF","FDFDDDFFFF","FFDFDDFFDD","FFFDDDFFFF"}
890892108
Returns: 100
{"FFDFFFFFFF","FFDFFFFFFF","FFFFDFFFFF","FFFFDDFFFF","FFFFFFFFFF","FFFFFFDFFF","FFFFFFFFFF","FFDFFFFFFF","FFFFFFFFFF","FFFFFFFFFF"}
88198027
Returns: 100
{"FFFFFFFDFF","FFFFDFFFFF","FFFFFFFFFF","FFFDFFFDFF","DFFFFFFFFF","FFFFFFFDFD","FFFFFFFFFF","FFFFFFFFFF","FDFFFFFFFF","FFFFFFFFFF"}
688303277
Returns: 100
{"FFF"}
1
Returns: 0
{"DFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF"}
17
Returns: 99
{"FFFFF", "FFDFF", "FFFFD", "FFFFF", "FFFFF"}
2
Returns: 17
In this example, the picture on the left represents the initial state for Bob's island. After two years, the island state will become the picture on the right (dark green represents forest and pale yellow represents desert). Thus, the number of desert cells after 2 years is 17.
{"FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"}
1000000000
Returns: 0
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF"}
3
Returns: 90
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF"}
98765432
Returns: 100
{"FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF" }
1000000000
Returns: 0
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFDFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
98765432
Returns: 100
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
3
Returns: 90
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
1000000000
Returns: 0
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
99765432
Returns: 100
{"FFFFF", "FFFFF", "FDFDF", "FDDDF", "FDDDD" }
1000000000
Returns: 25
{"DFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
1000000000
Returns: 100
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
98765432
Returns: 100
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
1000000000
Returns: 100
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
1000000000
Returns: 0
{"DFFFFF", "FFFFFF", "FFFFFF", "FFFFFF" }
1000000000
Returns: 24
{"FFFFF", "FFFDF", "DFFFF" }
2
Returns: 14
{"FFFFF", "FFFFF", "FFFFF", "FFFFF", "FFFFF", "FFFDF", "FFFFF", "FFFFF", "FFFFF" }
1000000000
Returns: 45
{"DDDDDDDDDD", "FFFFFFFFFF", "DDDDDDDDDD", "FFFFFFFFFF", "DDDDDDDDDD", "FFFFFFFFFF", "DDDDDDDDDD", "FFFFFFFFFF", "DDDDDDDDDD", "FFFFFFFFFF" }
1000000000
Returns: 100
{"FFDDD" }
6
Returns: 5
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFD" }
1000000000
Returns: 100
{"FFDD" }
10
Returns: 4
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
98765432
Returns: 90
{"DDDDD", "DDDDD", "DDDDD", "DDDDD" }
1000000000
Returns: 20
{"FFFFFFFFF", "FFFFFDFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF" }
1000000000
Returns: 90
{"FFFFFF", "FFFFDF", "FFFFFF" }
1000000000
Returns: 18
{"FFF", "FFF", "FFF" }
100000000
Returns: 0
{"FDFF" }
30
Returns: 4
{"FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF", "FFFFFFFFF" }
1000000000
Returns: 0
{"FFFFF", "FFFFF", "FFFFF", "FFFFF", "FFFFF" }
1000000000
Returns: 0
{"DFD", "FDF", "DFD" }
1000000000
Returns: 9
{"FDDDDD" }
1
Returns: 6
{"FFFFFFFD", "FFFFFFFD", "FFFFFFFD" }
10000000
Returns: 24
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
98765432
Returns: 100
{"FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
1000000000
Returns: 100
{"DF" }
1000000000
Returns: 2
{"DFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
13
Returns: 85
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
998765432
Returns: 100
{"FFD", "FFD" }
1000
Returns: 6
{"DDDDD", "DDDDD", "DDDDD", "DDDDD", "DDDDD", "DDDDD", "DDDDD", "DDDDD", "DDDDD", "DDDDD" }
2
Returns: 50
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFD" }
10
Returns: 64
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "DFFFFFFFFF" }
1000
Returns: 100
{"FFFFF", "FFFFD" }
100
Returns: 10
{"FFFFF", "FFDFF", "FFFFD", "FFFFF", "FFFFF" }
2
Returns: 17
{"DFF", "FDF", "FFD", "FFF", "FFF", "FFF", "DDD" }
1000000000
Returns: 21
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFD" }
100
Returns: 100
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFD" }
10000
Returns: 100
{"DFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
98765432
Returns: 100
{"FFFF", "FDFD", "FFFD" }
1
Returns: 9
{"FFFD", "FFDD", "FFFD", "DFFF", "DDDD", "DDDD", "FFDD" }
100000
Returns: 28
{"DFFF", "DFFF", "DFFF" }
1
Returns: 6
{"D" }
1000000000
Returns: 1
{"FFFF", "FFFF" }
300
Returns: 0
{"FFFFFFFFFD", "FFFFFFFFFF" }
1
Returns: 3
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
98765432
Returns: 0
{"FFFDFFFDF" }
1
Returns: 6
{"DFFFD", "DFFFD", "FFFFF" }
1
Returns: 10
{"FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF" }
100000000
Returns: 100
{"DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF", "DDDDDFFFFF" }
100000000
Returns: 100
{"DDDD", "DDDD" }
1000000000
Returns: 8
{"FFF", "FDF", "FDF" }
1000000000
Returns: 9
{"FFFFD", "FFFFD", "FFFFD", "FFFFD", "FFFFD", "FFFFD", "FFFFD", "FFFFD", "FFFFD", "FFFFD" }
2
Returns: 30
{"DDDDDDDDD", "DDDDDDDDD", "DDDDDDDDD", "DDDDDDDDD", "DDDDDDDDD", "DDDDDDDDD", "DDDDDDDDD", "DDDDDDDDD", "DDDDDDDDD" }
999999999
Returns: 81
{"FFFDF", "FFDFF", "FDFDF" }
2
Returns: 14
{"DFFF", "FFFF", "FFFF", "FFFF" }
1
Returns: 3
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFD" }
10000000
Returns: 100
{"FFF", "FFF", "FFF" }
1
Returns: 0
{"DFFFF", "FFFFF", "FFFFF", "FFFFF", "FFFFF" }
6
Returns: 22
{"FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "FFFFFFFFFF", "DFFFFFFFFF" }
20
Returns: 90
{"DFF", "FFF", "FFF" }
5
Returns: 9
{"FFFFFDFFFF", "FDFDFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "DDFFFFFFFF", "FFFFFFFFFD", "FFFFFFFFFF", "FFFFFFFDFF", "FFFFFFFDFF", "FFFFDDFFFF" }
100000000
Returns: 100
{"FF", "FD", "DD" }
100
Returns: 6
{"FFFD" }
98765432
Returns: 4
{"D", "F", "F", "F", "F", "F", "F", "F", "F", "F" }
7
Returns: 8
{"DDDDDDDDDD", "DDDDDDDDDD", "DDDDDDDDDD", "DDDDDDDDDD", "DDDDDDDDDD" }
2
Returns: 50
{"FDFDFDFDFD", "FDFDFDFDFD", "FDFDFDFDFD", "FDFDFDFDFD" }
1000000000
Returns: 40