Problem Statement
Cat Snuke is playing the Path Game.
The Path Game is played on a rectangular grid of square cells. The grid has 2 rows and some positive number of columns. Each cell is either black or white.
A left-to-right path in the grid is a sequence of white cells such that the first cell in the sequence is in the leftmost column, the last cell in the sequence is in the rightmost column, and each pair of consecutive cells shares a common side.
The initial coloring of the grid is such that there is at least one left-to-right path.
You are given this initial coloring as a
Snuke may color some of the white cells black. After he does so, there must still be at least one left-to-right path left on the board. The goal of the game is to color as many cells black as possible. Compute and return the largest number of cells Snuke can color black. (Note that the cells that are already black do not count.)
Definition
- Class:
- PathGameDiv2
- Method:
- calc
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int calc(String[] board)
- (be sure your method is public)
Constraints
- board will contain 2 elements.
- Each element in board will contain between 1 and 50 characters, inclusive.
- All elements in board will have the same length.
- Each character in board will be '#' or '.'.
- The grid described by board will contain a left-to-right path.
Examples
{"#...." ,"...#."}
Returns: 2
Snuke can color at most two white cells black. One possible final state of the board looks as follows: #.... ..###
{"#" ,"."}
Returns: 0
Snuke can't color any cells.
{"." ,"."}
Returns: 1
{"....#.##.....#..........." ,"..#......#.......#..#...."}
Returns: 13
{"." ,"#"}
Returns: 0
{".","."}
Returns: 1
{".","#"}
Returns: 0
{"..",".."}
Returns: 2
{"..",".#"}
Returns: 1
{"..","#."}
Returns: 1
{"...","..."}
Returns: 3
{"...",".#."}
Returns: 2
{"..#","#.."}
Returns: 0
{"...",".##"}
Returns: 1
{"#.#","..."}
Returns: 1
{"...","###"}
Returns: 0
{"##.","..."}
Returns: 1
{"#","."}
Returns: 0
{"..","#."}
Returns: 1
{"..#","..."}
Returns: 2
{"...#","#..."}
Returns: 1
{"#....","..##."}
Returns: 1
{"......","##...."}
Returns: 4
{".......","..##..."}
Returns: 5
{".......#",".##..#.."}
Returns: 3
{"####..#..","........#"}
Returns: 2
{".#........","...##....."}
Returns: 6
{"#..........","....####..."}
Returns: 5
{"#..###......",".......#..#."}
Returns: 5
{"#........#...","..##..##....."}
Returns: 5
{"###..#..###...",".............."}
Returns: 7
{"...............",".#....#.#.#...."}
Returns: 11
{"###.......#.....","....#..........."}
Returns: 9
{"...#.#......#....","........#........"}
Returns: 11
{"............#....#","..##.....#........"}
Returns: 12
{"....#....#.........","#.....##...###....."}
Returns: 7
{"##..................",".....#.#........#..."}
Returns: 14
{"#....##...##..#......","........#...........#"}
Returns: 10
{"..#..#.....####.#.##..","#.......##............"}
Returns: 7
{"......#....#...#..###..","#####...##...#........#"}
Returns: 2
{"...###..#......##...####","..........#.......#....."}
Returns: 8
{".............#.#.......#.","#........#..............."}
Returns: 19
{"..............###.........","...#..#####.#......##..##."}
Returns: 10
{".......#...................",".........#.....#.#........."}
Returns: 22
{"#.....#....####.............","...##...##.......#.#..##.##."}
Returns: 7
{"#.........................##.","..###...#....#.#.....#.#....."}
Returns: 16
{"##....#..#...###........#..##.","...........#.........##......."}
Returns: 13
{".......#...#..............#....",".#..#....#....#..#..#.......#.#"}
Returns: 14
{".#..................#.....##....","...#..##..##.....#.....##......."}
Returns: 16
{".....#.......##......#....#......",".#.#.......#.....#..........#..#."}
Returns: 16
{"#........######..............###..","..#..#..........######..#..#.....#"}
Returns: 8
{".#....#..#......#..#........#.....#","...#...................#..........."}
Returns: 22
{"#...#........#....###...#........#..",".......#.......##..............#...."}
Returns: 18
{"..#.#...#.....................#......","#.....#....#...#...#.#............##."}
Returns: 19
{".....###......#..........####..#..###.","####.....####...###....#.............."}
Returns: 9
{"####.##.#....#...#.......#..#....#.....","..........##...#...#.###.............#."}
Returns: 12
{"#....#..#..#.#................#.........","...#............##.#..................#."}
Returns: 24
{"........#........#...................#.##","....#.....###..#.......#..#.####.###....."}
Returns: 17
{"#.............##...#.#..............#.....","...#....##.......#.......#........#...##.."}
Returns: 21
{"....#..#....##....#.###.........##.........","..........#....##........#...#.......#.#..."}
Returns: 19
{"...#..............#######...#..########.....","##...#..##..##..#.........#.............##.."}
Returns: 10
{"..#....#.##.#.......#............##.#.......#","..............#...#...#......................"}
Returns: 28
{"...#...........##......#.....######........##.","##...#..###..#....##.....###.................."}
Returns: 15
{"#..#......#....#.................#.....##....#.",".....##......#...#.#.#.#.....#......#.........."}
Returns: 22
{".........#........#.#.#...............#....#....","##....#.....#...#..........#...#.#......#......."}
Returns: 26
{".............#............#.##...##...#.#...#...#","....#.#.........#..#....#.....................#.."}
Returns: 28
{".#..................#...........#...#....#......#.",".....#....##.....##...#....###....#....#....#....."}
Returns: 22
{".........................","........................."}
Returns: 25
{"..................................................",".................................................."}
Returns: 50
{"....#.##.....#...........", "..#......#.......#..#...." }
Returns: 13
{"###............................##.................", "....######.....###############....################" }
Returns: 5
{".", "#" }
Returns: 0
{"#..", "..#" }
Returns: 0
{"..", ".." }
Returns: 2
{"#.#", "..." }
Returns: 1
{"............#...", "................" }
Returns: 15
{"#....", "...#." }
Returns: 2
{"#...#", "..#.." }
Returns: 0
{".....#...................#........................", ".............#....#....#.........................#" }
Returns: 41
{"..................................................", ".................................................." }
Returns: 50
{".#..", "...#" }
Returns: 1
{"#...#...", "..#....#" }
Returns: 1
{"................#...............", ".....................#.........." }
Returns: 29
{"#...", "...#" }
Returns: 1
{"...", "..." }
Returns: 3
{"#.#..", "....#" }
Returns: 1
{".#.", "..." }
Returns: 2
{"....", "...." }
Returns: 4
{"...##", "##..." }
Returns: 0
{"...#", "#..." }
Returns: 1
{".#", ".." }
Returns: 1
{".....", "#####" }
Returns: 0
{".................................................", "................................................." }
Returns: 49
{"##...#", "...#.." }
Returns: 0
{"#...#..", "..#...#" }
Returns: 0
{"###", "..." }
Returns: 0
{".#.#.#.", "......." }
Returns: 4
{"#", "." }
Returns: 0
{"....#", "....." }
Returns: 4
{".", "." }
Returns: 1
{"..", "#." }
Returns: 1
{"..#", "..." }
Returns: 2
{"..#......#.......#..#....", "....#.##.....#..........." }
Returns: 13
{"..#.", "...." }
Returns: 3
{"...#...", "......." }
Returns: 6
{"...#...#..", ".....#...." }
Returns: 5
{"##...#..", "...#...." }
Returns: 2
{".#...", "...#." }
Returns: 2
{".##..", "....." }
Returns: 3
{"..#....", "....#.." }
Returns: 4
{"..#..", "....." }
Returns: 4
{"..###.....###...", "......###......." }
Returns: 5
{"....#.##.....#..........#", "..#......#.......#..#...." }
Returns: 11
{"...#......", ".........." }
Returns: 9
{"...#", "...." }
Returns: 3