Statistics

Problem Statement for "EllysFigurines"

Problem Statement

Elly has placed several (possibly none) figurines on a rectangular board with several rows and columns. Now Kristina wants to remove all figurines from the board. In a single move she selects either up to R consecutive rows, or up to C consecutive columns and removes all remaining figurines that are located there. The girl wonders what is the minimal number of moves in which she can clear the entire board.

The position of the figurines will be given to you in the String[] board. The j-th character of the i-th element of board will be '.' if the cell is empty, or 'X' if it contains a figurine. The maximal number of cleared rows in a single move will be given in the int R. The maximal number of cleared columns in a single move will be given in the int C. Return the minimal number of moves that is sufficient to clear the entire board.

Definition

Class:
EllysFigurines
Method:
getMoves
Parameters:
String[], int, int
Returns:
int
Method signature:
int getMoves(String[] board, int R, int C)
(be sure your method is public)

Notes

  • In a single move the girl can only select a consecutive group of rows or columns to be cleared. In other words, in each move Kristina first decides whether she wants rows or columns, then she picks the index i of the first chosen row/column, then the number k of chosen rows/columns, and finally she removes all figurines from the rows/columns with indices i, i+1, i+2, ..., i+k-1.

Constraints

  • board will contain between 1 and 15 elements, inclusive.
  • Each element of board will contain between 1 and 15 characters, inclusive.
  • All elements of board will contain the same number of characters.
  • Each character of board will be either '.' or 'X'.
  • R will be between 1 and 15, inclusive.
  • C will be between 1 and 15, inclusive.

Examples

  1. {".X.X.", "XX..X", ".XXX.", "...X.", ".X.XX"}

    1

    2

    Returns: 3

    In this case in a single move Elly can remove all figurines from a single row, all figurines from a single column or all figurines from two consecutive columns. One way to achieve the optimal answer here would be to remove the figurines from the first and second column in the first move, then the ones from the fourth and fifth column in the second move, and finally the remaining ones on the third row in the third move. Another solution would be to erase only columns, again using three moves.

  2. {".X.X.", "XX..X", ".X.X.", "...X.", ".X.XX"}

    2

    2

    Returns: 2

    Almost the same as the first example, but without the figurine in the middle and the number of maximal rows removed is increased by one. This time, the only optimal solution is to clear the first two columns in one move and the last two in another move.

  3. {"XXXXXXX"}

    2

    3

    Returns: 1

    The maximal allowed number of cleared rows or columns might be greater than the corresponding dimension of the board. The optimal solution for this board is to clear the only row in one move.

  4. {"XXXXX", "X....", "XXX..", "X....", "XXXXX"}

    1

    1

    Returns: 4

    Here clearing rows 1, 3 and 5, together with column 1 yields the best result 4.

  5. {"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..."}

    1

    2

    Returns: 7

    Good luck in TCO 13!

  6. {"."}

    1

    1

    Returns: 0

  7. {"X"}

    1

    1

    Returns: 1

  8. {"X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X"}

    1

    1

    Returns: 15

  9. {"...............", "XXXXXXXXXXXXXXX", "...............", "...............", "...............", "XXXXXXXXXXXXXXX", "...............", "...............", "...............", "...............", "...............", "XXXXXXXXXXXXXXX", "...............", "...............", "..............."}

    1

    2

    Returns: 3

  10. {".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X..."}

    2

    1

    Returns: 3

  11. {".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X."}

    1

    1

    Returns: 14

  12. {"........", "........", "........", ".......X", "........", "........", "........"}

    4

    2

    Returns: 1

  13. {"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX"}

    1

    1

    Returns: 15

  14. {"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX.........."}

    5

    5

    Returns: 2

  15. {"XX.", ".XX"}

    15

    15

    Returns: 1

  16. {"XX...", "X.X..", "X..X.", "X...X"}

    1

    1

    Returns: 4

  17. {"X...", ".X..", "..X.", "...X", "XXXX"}

    1

    1

    Returns: 4

  18. {"......X", "XXX....", "XX.X...", "XX..X..", "XX...X.", "......X"}

    1

    1

    Returns: 5

  19. {"X....X", ".X....", "..X...", "...X..", "....X.", ".XXXX.", ".XXXX."}

    1

    1

    Returns: 5

  20. {"XX.XXXXX.XXXXX.", "XX.XX.XX.XX.XX.", "XX.XX.XX.XX.XX.", "XX.XX.XX.XX.XX.", "XX.XX.XX.XX.XX.", "XXXXX.XXXXX.XXX"}

    1

    2

    Returns: 6

  21. {"XXX.XXX.XXX.XXX", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.XXX.XXX.XXX.X"}

    1

    1

    Returns: 10

  22. {"XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX", "X..............", "XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX", "X..............", "XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX", "X..............", "XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX"}

    1

    1

    Returns: 10

  23. {"..X.......X..", ".X.X.....X.X.", "X...X...X...X", ".....X.X.....", "......X......"}

    1

    3

    Returns: 4

  24. {"..X..", "...X.", "....X", "...X.", "..X..", ".X...", "X....", ".X...", "..X..", "...X.", "....X", "...X.", "..X.."}

    3

    1

    Returns: 4

  25. {"..XX........XX.", ".X..X......X..X", "X....X....X....", "......X..X.....", ".......XX......"}

    1

    2

    Returns: 5

  26. {"XX", "..", "XX", ".X", ".X", "X.", "..", "..", "X.", "XX", "..", ".X", "XX", "X."}

    10

    2

    Returns: 1

  27. {"X.X.", "XXXX", ".X..", "X.X.", "X..X", "...X", "XX.X", ".X.X", "XX.X", ".X.X", "..X.", "X...", "..XX"}

    6

    4

    Returns: 1

  28. {"..X..", "..XX.", "..XXX", ".X...", "X..XX", "X.X.X", "XXXXX", "XXXX.", "XX.X.", "XX..X", ".XXX.", "..X.X", ".X.X.", "XXXX.", "..X.X"}

    13

    1

    Returns: 2

  29. {".X.XXXXX..XX.XX", ".X.XXXXX..XX.X.", ".XXX.......XXX.", ".X.X.X.X..XX..X", "...XXX..X..XX..", "..X.XXX..X.....", "X.....X.....XX.", ".XXXX.X..XXXX.X", "XX..X.........X", "X.X.X...XX...X.", "XX.XXXXX.XX.XX."}

    2

    10

    Returns: 2

  30. {"...X.X", "......", "XX.X.."}

    1

    5

    Returns: 2

  31. {"..XXX..X.", ".XXX..X..", "X.XXXX.XX", "..X.....X", "...X.....", ".X.XXX...", "X..X...XX", ".XXXXX..X", "..X.XX..."}

    3

    3

    Returns: 3

  32. {"X", ".", ".", ".", ".", ".", "X"}

    7

    1

    Returns: 1

  33. {".X.XX.XXX.X.XX", ".XX.XXXXX..XXX", "X..XX.X...XX..", "X..XXXXX.X.XX.", "...X..X......."}

    5

    13

    Returns: 1

  34. {"..X", ".X."}

    1

    2

    Returns: 1

  35. {"...X...X.XX.XX", ".XX......X..XX", "XXX.XXX.XXXXX.", "X.XX.X..X..XXX", "X..XXXXX..XXX.", "...XXXXX.XXXXX", "X....XX...XX..", "...X...XXX...X", "XXX.XXX....XXX", ".XX.XXX.X.X.X.", "..X.X..X.XX..X", "XX.X.X...X.XXX"}

    2

    14

    Returns: 1

  36. {"XX..X.XX.", "...XXXXXX", ".XX..XX.X", "XX.X.XX.X", "X..X..X..", ".XX...X..", "X...XX..X", ".X.X..X..", ".X....X..", "XX.X....X", "XXXXX.X.X", "XXXXX..X.", "....X..X.", "XXX....XX"}

    2

    3

    Returns: 3

  37. {"X..X.XXXXX..XX"}

    1

    12

    Returns: 1

  38. {".XXX."}

    1

    5

    Returns: 1

  39. {"X.", "XX", "X.", "X.", "..", "XX", "..", "X.", "XX", ".X", "X.", "XX"}

    4

    1

    Returns: 2

  40. {"X..X.", "X..XX"}

    2

    5

    Returns: 1

  41. {"X.....", "X.XX.."}

    1

    1

    Returns: 2

  42. {"..X.X.XX."}

    1

    6

    Returns: 1

  43. {"X.XXX.XXX", "X..X...XX", "..X.XXXXX", "..XXX...X", ".X.....X.", "XX..X.XXX", ".X.XX.X.X", "XXX.X..X.", "....XX.XX", ".X..XX.XX", "X.X.X..X.", ".XXXXXXX.", "...X.X..."}

    1

    6

    Returns: 2

  44. {".X.....X.X"}

    1

    3

    Returns: 1

  45. {"XXX.XX.", "XXXX.X.", "XXXX.XX", "XX...XX", ".X.X.XX", "X.X...X", "...XXX.", "X.X.XXX", "X..XX.X", "X..X..X"}

    7

    2

    Returns: 2

  46. {".XXX.XX.XXX..XX", "...XX.X.XX....X", ".X....XX..X.XXX"}

    3

    14

    Returns: 1

  47. {"XX..XX"}

    1

    1

    Returns: 1

  48. {"XX....X.X.X.", "XXXX.XXXX...", ".XXX.XX.XX.X", "XXX....XXX.X", ".XX.XX.XXXXX", "X.X.X.X.X..X", "XXX..X.XXXX.", ".X.X.XXXX.X.", "....X.X.X...", "..XXX.X.XXXX"}

    1

    4

    Returns: 3

  49. {"X.XXXXX..", "X.XX.XXX.", ".....XX.X", "...XX.XXX", "..X.XX.X.", "X.X.XX.X.", "...X..X..", "XXXXXX..X", "....X.XXX", ".....X.XX", "X.XXX....", "XX..X..XX"}

    2

    4

    Returns: 3

  50. {".XXXX.X.X..XXXX"}

    1

    12

    Returns: 1

  51. {"XXXXX.X.XXXX.XX", "X.........X.X.X", "X...X..X.X.X...", ".XX.XX.XXXX.X.X", "..XX..XXXX.X.XX", ".X.XXXX...XXX..", "...XX.X.XXX..XX", "....XX..X.X...."}

    1

    1

    Returns: 8

  52. {"X.X.", "..X."}

    1

    1

    Returns: 2

  53. {"...X..X.X...", ".XX.XXXXX.X.", ".X.XX..X....", ".X.X.XX....X", "XX..XX...XX.", "XXXXX.XXXXXX", "..X.X.X.XXXX", ".XXX..XX...X", ".XX.X.XX.X.X", "XX..XXXX...X", "XX.X.X...X.X", "X.X.XXX..X.X", "..XX.X.XX..X", "XXX...X....X"}

    1

    1

    Returns: 12

  54. {"X.XXXXX..", "...XXX...", "XX.XX.XX.", "X..XX..XX"}

    1

    1

    Returns: 4

  55. {"......", "XX.X.X", "......", "XXX.X.", "XX....", "X..X..", "XX.X..", ".X.XXX", "X....X"}

    1

    1

    Returns: 6

  56. {"."}

    1

    1

    Returns: 0

  57. {".XXXXXX.", ".X..X...", ".XXX..XX", ".....XXX", "X...XX..", ".......X", "......X.", ".XXXX..."}

    1

    1

    Returns: 8

  58. {"..XX..X", ".....X.", ".XX.X.X", "...XX.X", "X.XX...", "......X", "XXXX..."}

    1

    1

    Returns: 7

  59. {"X", ".", "X", "X", "X", ".", "X", ".", "X", "X", "X", ".", "."}

    1

    1

    Returns: 1

  60. {"..XX.X.X", ".XX..X.X", "...XX..X", "XX.XX...", ".XX..X..", ".XX..XX.", ".XXXXXX.", ".X..X..X", ".X....X.", "X.XXX.XX", "..XXX..X"}

    1

    1

    Returns: 8

  61. {"XX.X....X", "...XX...X", ".XX.X....", "..X.X..XX", "XXX....XX", ".X.XXX..X", "..X..X..X", "...XXXXXX", "XX..XX.XX", ".XXX.X..X", "..XXXXX.X", ".X.....XX", ".X.XX....", "XX..XXX..", ".X.XX..X."}

    1

    1

    Returns: 9

  62. {"XX.", "X.X", "..X", "X..", "...", "XXX", "XXX", "..X", "X.X", "X.X", "X.."}

    1

    1

    Returns: 3

  63. {"..X.X..X.XXX", "....X.....XX", "....XXXXXX..", "X.X.X.X....X", ".....XX..XXX", "...XX.XXX.X.", ".......X..X.", "XXXX...X.X..", "X.X...XX.XXX", ".X..XXXX...X"}

    1

    1

    Returns: 10

  64. {".....X.X.XXX.", "..XX.XXX...XX", "....X..X.X.X.", "...X...XX...X"}

    1

    1

    Returns: 4

  65. {"X.XX.XXXX...", "XXXXXXXXXXX.", ".XX.X.X....X", ".X.XXXX....X", "XX..XXXXX...", ".X..X.XX..XX", "X..XX...XXX.", "...X..X.X...", ".....X.XX...", "..XXX.....X.", ".X.XX.XX.X..", "..X..X...XXX", "XXXXXXXX.X.X", "....X.X....."}

    1

    1

    Returns: 12

  66. {"....X", "XXXXX", ".....", "XX.XX", "...X."}

    1

    1

    Returns: 4

  67. {".X.XX.XXX.", "X.X......X", "X..X.XX.XX", "....X...XX", ".......XX.", "...XX....X", "..X.......", ".X..XX.X.X", "X..XXXXX.."}

    1

    1

    Returns: 9

  68. {".", ".", ".", "X", "X", "X", "X", "X", "X"}

    1

    1

    Returns: 1

  69. {"XXX....X", "XXX..X.."}

    1

    1

    Returns: 2

  70. {"XX", ".X", "XX", "..", "X.", "X.", ".X", "..", "X.", "..", "X.", "XX", ".X", "..", "XX"}

    1

    1

    Returns: 2

  71. {".X.", "X..", ".X.", "X.X", "..X", "..X", ".XX", "X..", "..."}

    1

    1

    Returns: 3

  72. {"X.X", "..X", ".XX", ".X.", "..X", ".XX", ".XX", "X..", "...", ".X.", "..X", "X.X", "..."}

    1

    1

    Returns: 3

  73. {"....X.."}

    1

    1

    Returns: 1

  74. {"XX.XX..", "X.X..XX", ".X..XX.", ".X..XXX", "XXX..X.", "XX...X.", "..X.X.X", ".XX..XX", "X..XXXX", "XXX..X.", "..XX..X", "X...XX.", "X.XX.X.", "XXX..X."}

    1

    1

    Returns: 7

  75. {"XX", "X.", ".X", ".X", "XX", ".X", ".X", "X.", ".X", "X."}

    1

    1

    Returns: 2

  76. {".X.X..XXX...XX.", "X...XX.......XX", ".X..X.X......XX", "..X.XX.XX.XX.X.", "X..X.XXXXXX.XXX", ".X...XX.......X", ".XX...XXXXXXX..", ".X..X.X........", "XXXXXXXX...XXX.", ".XX....X..X..XX", ".X.X.X.X..X..XX", ".XXXXXXX.XX.XXX", ".X......X..XX..", "..XXX...XXX.XXX", ".X.X..X..X...XX"}

    1

    2

    Returns: 8

  77. {"..XXXXX.X.XX...", "X.XXXXXXXX..X.X", "..X.XXX.X...X..", "XX.X...XX..X.XX", "X.XX...X.XX.XX.", "X.XXXXX.....X.X", ".XXX.XX..XX.X.X", "XXX.XXX.XXXXX.X", "XX...X..X.XX.XX", "X.XXX....X.X.X.", "X.XXXX.XX.XXX..", ".X.X.XX...X.XXX", "X....X...X.X.XX", "..XXXX.X..XX..X", "..X..XX..X....."}

    1

    2

    Returns: 8

  78. {".X.X.X....XX.X.", "XX..X...X.XX..X", "....X..XX.....X", ".XX.X..XXXX....", "....XXXXX.XX.XX", "XX..XXX.X.X....", "X.XX..XXX.X.XX.", ".XX.XXX.X...XX.", "X...XX...X...XX", ".X.XX..X.XXX...", "...X.X.X.......", "..X..X...X.X...", "....X.XXXX.....", "..XXXX.XX..X..X", ".....X..X.XX.XX"}

    1

    2

    Returns: 8

  79. {".X.XXX.X...XX.X", "X..X.....X....X", ".XX...XXXXXX..X", ".XX..X.X.X..XXX", ".X.XX.X.XXX...X", "...X.XX..XX.X.X", ".X...XX.X.XXXXX", ".XX.XXX.XXXX..X", "XX..XXX.XXX...X", "X.X...X...XXXXX", "XX.XX....XXXXXX", "X.X....X...XXXX", "...X.XX.XX.XXX.", "..X..X..X..XXX.", "..X.XXX.XXXX..X"}

    1

    2

    Returns: 8

  80. {".XXXX.XX..XXX..", "XX..XXXXXX.X..X", "X..X.XXX.XXX...", "XXXX..XXX..XXXX", "X..XX.X.XX..X..", "XXX.XX..X..XX..", "XXXX..XXX.XX..X", ".XXXX.XX..X.XX.", "..XXX.X.X...X..", "X.X.X......X...", "X...XX..X.XX..X", "XXX.XXXXXXX....", "XX.XXXX.X.....X", "XX.X...XXX.XX.X", "XX.XXX..X..X..."}

    1

    2

    Returns: 8

  81. {"X.X.XX.X.X....X", "XX.XXXXXX.X....", ".X.XXXXX.XXX.XX", "XX.X.XXXX......", "X..XXXX.XX....X", "XX...XXX....X..", "XX.XX.X...X....", "XXX.X.XXXXXX...", "..XXX.X..X.....", "..X..X.X.X.XX..", "XX...XXX.X..X.X", "XXXXXX.X....XXX", "X..XX.X.XXXXXX.", "..XXX..XX.XXXXX", "..X....X.X...XX"}

    1

    2

    Returns: 8

  82. {"..XXXXX......XX", "XXX.XXXX.X..XX.", ".X..XXX.XXX.XXX", "..X...XX..X...X", ".XX.X....XXXXX.", "XX..XX.X..XXXX.", "..XX..X....XXX.", ".....XXX..XXX.X", "XXX..X.......XX", ".X.....XX.XX.XX", "X...XXXXXX.XX..", "X..XX.XXXXXX.X.", "X....XX.X.XXXXX", "X.XXX.X.XXXX.X.", ".XX.XX..XX.X.X."}

    1

    2

    Returns: 8

  83. {"X....XXXX..XX..", "..XXX..X....X.X", "XX.XX...XXX....", "X.X.X.X.XX.X.XX", "X..XXXXX.X.XXXX", "X....X.XXXXX.X.", "X..X.XXX.X.X.X.", "XX.XX.X...XX...", ".X.XX....XX..X.", "..X....X..X.XX.", "X.X.X..X...XX..", "X.X..X.X.XXXXXX", "X.X...XXXXX.X..", "XXX.XXX..XX.X.X", ".XXXX.X.X....XX"}

    1

    2

    Returns: 8

  84. {"X...X.X....X.XX", "XX...X.X.XX...X", "XXXXX.X.XX.X...", "XXXX.XX..X.XX.X", ".X.X.X...XX...X", ".X.XX...X.XXX.X", "X..XX.XX.X..X..", "..XXX.XX..XXXXX", "..X.XXX..XXXXXX", "XX.X.XX.X...X.X", "X.X.XXX.X.XXXX.", "..X.X..X.XX.X..", "XXX...XX.XXX...", ".XXXX.XXXX....X", ".X.XX.XX.X.XX.."}

    1

    2

    Returns: 8

  85. {"X.X.X.XX....X..", ".XX..XX..XX....", "...X.X.X...X.XX", "XX..XXX.XXX.X.X", "X.XX.XX.XX.X...", ".XX...XXX.X.X..", "..XXXX..XX.X..X", "..XXXX...XXXX..", "...XXX.X.XX..X.", "X.X.X.XX...XX.X", "X.XXX.XX.X.XX..", "XX.....XXXX..X.", "...X.X.X....XX.", "X.X.XX.XXX..XXX", "XX.X....X..X.X."}

    1

    2

    Returns: 8

  86. {".X..XXXXX..XX..", ".XX.X..X.X.X...", ".XXXX...XXX.X..", "X.XXX.XX.XX..X.", "X.X.X.XXX.X....", ".X...X.XX.X..XX", "X.X.X.X....X.XX", ".X..XX...X.XXXX", "..X....X..XXXX.", ".XXX.X..X.XX...", "X....XXX.XX..XX", ".XX..XX.X.X.XX.", ".....XXX..XX.X.", "X.....XXX.X...X", "..XXXX..X...X.X"}

    1

    2

    Returns: 8

  87. {"..X..X...X.XXX.", ".X.X.XX.......X", "X.XX.X..XX...XX", "...XXX..X...X..", "...XX..X.....X.", "XX.X.X.X..X...X", "..X.X...X...X.X", "XX.X.X.X..XXXX.", ".X.XX.XX..X....", "XXX..XXX.XXX...", "..XXX.X.XXXXXXX", "XXX.XXX...X.XX.", "..XXX...XXX...X", ".X.XXX..XX..X..", "X...XXXXX.X..X."}

    1

    2

    Returns: 8

  88. {"XXX...XX.X.XXXX", "X.XXX....X.XX..", "XX..X..XXX.X.X.", "XXX....X....X..", ".XX..X....X.XXX", "...X.XXX.XX.XX.", "XX..X.XX.XX.XXX", "XX.X...XX..XXX.", "X.XX..X.X.XX.X.", "X.XXXX...X...XX", ".XXX.XX.XX.X...", ".X.XXX.XX....XX", "XX..XXX.XXXX.XX", ".X...XX..X.XX..", ".XXXX..XXX....."}

    1

    2

    Returns: 8

  89. {"X.XX..XX.X.X.XX", "..X.X..XXX.X..X", ".XXX.XXXX.XXXXX", "..XX....XX.XX.X", "....X.XX..XX...", "X.......XXXX..X", "XXXXX.X.XXX..X.", "X.XX.X..XXX..XX", "X...XX..X.....X", "XXX.XXXXX.....X", "XXXXX..XX.XX..X", ".XXXX.X.X..XX.X", "....XX...X.....", "..XX..XX..X.X..", ".X..X.XX.XX.XX."}

    1

    2

    Returns: 8

  90. {"XXX..X.X..XX...", "X.XX..XXXXX.X..", "..XX...XX.XXX.X", "XX........XX.XX", ".XX.....XX...X.", ".XX.X......XX..", "XXX.XX.XXX.X.XX", ".X..XX.XX..XXX.", "..XXX.XXX.XX.X.", "XXXXX..X..X.XXX", "XX...X.X.X.XX..", "XX.X.XX.XX..X.X", "XX.X.X.......X.", "..X.XX.X.X..X..", "XX.X.....X..X.X"}

    1

    2

    Returns: 8

  91. {".X.XXXXX.X.XX.X", ".X.....X....XXX", ".X..XX..X.XXX.X", ".....X....X.X.X", "..X.X.XX..XX.XX", "XX....X.XXX.X..", "...X.XXX.X....X", ".X..X...XXX.X..", "XX....X.X.XX..X", "X.XX....XX..XXX", "XX.XX.X........", "XX..X.XX.....X.", "X.XXX......X..X", "..X....XXXXXX..", "XX..XX.XXXXX..."}

    1

    2

    Returns: 8

  92. {"X...X..X.X.X..X", ".XX...X.X.X..X.", ".XX.X...X.X....", "X.X.XX...XXX.XX", ".X.XXXXXXX.XX.X", "XXX.....X...X.X", ".....X.X.X...X.", "X..XX.XX..X....", "XXXXXX.X.XXXXX.", ".XX....XX...X..", "X.X.XXX...XXX.X", "X.......XXXXX..", ".X.X.X.XXXX...X", "X.XX..XX.X.X..X", "..X.XX...XX..X."}

    1

    2

    Returns: 8

  93. {"XX...X...XX..X.", "...X.......X...", "XXXXX.....XXXX.", "XX...X..X.XXXXX", "X..X..X..XXX...", ".X.XX..XXXX.X.X", "...XX.X..XXX.XX", ".XX...X....X.X.", "XX.X.XXXX...X.X", "XX..XX..X..X...", "....X.XX..X...X", "XX.XXX......X.X", "..X....XX.X.XXX", "......X..X....X", "X.X.....X.XX..."}

    1

    2

    Returns: 8

  94. {"X.X..X.XX.X..X.", "X..X..X....XXXX", "..XX.X..XX..XXX", "X.XXXXX.X.X.X.X", "X.X.X..X.XXXX..", "...XX..X.XXXX..", ".X......X.X.X.X", "X.X.X..XX.....X", "..........XX..X", "X.X...X.X...X..", "....XXXXXXX.X.X", ".XX..X.XX.XX...", "....XXX.XXX.X..", ".X.XX..XXXX.XXX", "XXXX..XX......."}

    1

    2

    Returns: 8

  95. {"X.XX..X....X.XX", "X..XX.X......X.", "..X.XX..X..X...", "X..XX......X...", "XX..XXXXX..X..X", ".XXX..X.XX.X.X.", "..X...XXX.XXXXX", "X...XXX.X.X.X.X", "X.X.XX....XXX.X", "XXXX...X..XX..X", "X....XXXXXX...X", "XX..X..XX.X..XX", "X.XX.X.X...X.X.", "X.X.X..X...X..X", "XXX.X..XX.X...X"}

    1

    2

    Returns: 8

  96. {".XXXX.......X..", "..X......XXXXXX", ".XX...........X", "..X..X.....X.X.", "X.X..XX..XX..X.", "X.X..XX..XX..XX", "..XXXXX..XXXXX.", "...X....X.X...X", "..XX..XX.X...XX", ".X.X..XX..X....", "X..XX.X.X.XX.XX", "X..XXX....XX.XX", ".XXX.XXXXXXX.X.", "XX...XX..XXX.X.", "..XXXX..X.X.X.."}

    1

    2

    Returns: 8

  97. {"XXX.XXX..XXX...", "X...XX...X.XXXX", "X.X.....X.X.X..", "XX..X.XX.X..X.X", ".XXX.....X.XXXX", "........X.X....", "XXXX.XX.XXXX.X.", ".XX.XX..X..X.XX", "...XXXX.X.XX...", "..XX..XX..XXXX.", "XX.X...X....X..", "X......XXXX..XX", "....XX...X..XX.", "X.XX.XX..XXXXX.", "XX.X.....XX.X.X"}

    1

    2

    Returns: 8

  98. {".XXX.X..X.XXX..", ".X..X..X.......", "X...X.XX.XXX...", "..X.X..X.X..X..", "X..X.X....XX.X.", ".X.X.X..X.XX..X", "X.XXX.XX.X.XX..", "X.XXXXXX..XXX..", ".X...X.XX.XXX.X", "XXX....X..XXX.X", "XX.XXXXX..XXX.X", ".X.XXXXX.XX.XX.", "..XX...XX.X....", "X.X.XXX..X..XXX", ".XXX.X...XXX.XX"}

    1

    2

    Returns: 8

  99. {"..X...XXXXXXX..", "..X...X...XXXX.", "X.X..XXXX...X..", "X.X..X..XX...X.", "X...X.X.X..X.XX", "X.....XX.......", ".X..XX.XXXXXX..", ".X..XXX..X.....", ".X..XX...XX.X..", "XXX.X.X..X..X..", "X.XX.XX.XX..XXX", "X....X.X.....X.", "XX....XXX.XXX..", ".....XXX.XXXX..", "XXXXX..XXXX...X"}

    1

    2

    Returns: 8

  100. {"..X..XX...X.XX.", "X.XX..X.X.XXXXX", ".X.XX..X.XX.X.X", "XXX..X.XX...XXX", ".X....X.XXX.X..", ".XX.X.X.XX.XXX.", "XXXX.XXX...X...", "..X..X..XXXXX..", "XXXXXX....XX.XX", "..XX.....XXX..X", "..X.X.XX...XX.X", "..XXXXX.XXX...X", "..XX..X.XX.XXXX", ".XXX.X..XXX.X..", "..XXXXX.XXXX..."}

    1

    2

    Returns: 8

  101. {"..XXX..X.X.X..X", "..XX..XX.....X.", ".XX....X....X..", "XXX..XXX.X.XX..", "..XX.XX..X.X..X", ".X.XXX...X...X.", ".XXX.X...XX..X.", "X.X.XXX.XXXX.XX", ".X.X.XX.XXX.XX.", ".X.XXX..X.X.XXX", "...XX...XXX.XX.", "XXXX..XX..XXX.X", ".XXX..X.X.X.X.X", "X...XX....XXX.X", "...XX..X.XXXX.."}

    1

    1

    Returns: 15

  102. {"XX.XXX.X..XXXXX", "XXXXXX.X...X.X.", "..X..XX..XX...X", "XX.XXX.X..X.XX.", "XX.XX..XX....X.", "X...XXXX..XX.XX", "...XX.XXX..X...", "X.XX...X..XXX..", "..XXX.XX..X.X..", ".X.X..X..X.XXXX", "X...XXX..X..XX.", "XXX..X..X.XX...", "X..X.XXXXX.XXXX", "XX..XXXXX...X.X", ".XX.XX..XXXXXXX"}

    1

    1

    Returns: 15

  103. {"....XXX...X.X..", "...XXX.XXX..XXX", ".X...XXXXX...XX", ".XX...X.X...XXX", ".XX.XXX..XX.XXX", "........X..X.X.", "X.X...X...XX..X", ".XX.XXXXX.X.XXX", "XXX.X..X..XXXXX", ".X.X.XXXX.X....", ".XXXX.XXXXX....", ".XX..X.X.X.XX.X", "X....XXX..XXXX.", "XXX..X..X.XX..X", "X.....XXX...XX."}

    1

    1

    Returns: 15

  104. {"X.X..X..XXX..XX", "X.XX.XX.XX.XXX.", "XX.XX..XX.....X", "X.X.X..X.X...XX", ".X......XX..XX.", "....X..XX..X...", "X.X..X...X..XXX", ".....X...X.....", "XX..X..X..X....", "....X.XX.XX.XX.", "X.XXXXXX.XXX.X.", ".X..XX..X.X...X", ".X.X.X.X.XXX.X.", ".X.XXX.X.XXXXX.", "XXXX...XX...X.X"}

    1

    1

    Returns: 15

  105. {"XX.X.XX..X.X.X.", "..X.X..XXXXX..X", "X...X.X.X.XXX..", "..XX..X....XX..", "XX.XXX.X.XXX..X", "...X...XX..XXXX", "X..X..X.XXX..X.", ".XX.XX.X.XX....", "X...X....XXXX..", "X....XX....X..X", "..XX.XX.X.XXX.X", ".XX..XXXXXXX...", "X..XX..X.XXX..X", "X.....XX.X.X..X", "....XX.X...XXX."}

    1

    1

    Returns: 15

  106. {"...XXXX..XXXX.X", "..X.X..XX....XX", "..X.X.X.X...XX.", ".XX.....X..X..X", "X.X.X.X......XX", "X.X..X..XX.XX..", ".X.X.XXX.XX..X.", "X.....X....X.XX", ".XX..X.X...X...", "..X..X...X....X", "X...X.XXXXXX.X.", "X.....XX.X.XX.X", ".X...X.X.XXXXX.", "X..X.XX...X.XX.", ".XX..XX.XX...XX"}

    1

    1

    Returns: 15

  107. {"X..XX........XX", "......X.X.XX...", ".X...X.XXXX.X.X", "..X...X....XXXX", "XX.XXX.X.X.XXXX", "XX.....X..XX...", "XXX...X.XXX..XX", "..X..X.X.XXX.XX", ".X.XX.X...XX.X.", ".X.XXX....XXXXX", ".X...X.XX.X.X.X", "..X.X.XX.XXXX..", "..X..XX......X.", "XX...XXX.XXXX.X", "X.XX.X.XXXXXXX."}

    1

    1

    Returns: 15

  108. {"X..XX...X.X.X..", "...XX..XXX...XX", "....XX.XX.X...X", "X.XXX..XXX....X", "XX.XXX..XX....X", "XXX.XX.X.X.XX.X", "X..XX....XX..X.", "X....XX.....XXX", "..XXX.X..XX.XXX", "X..XX...X..XXX.", "..XXX.X...X...X", "XX.XXX.XXX...XX", ".XXX...X..XX.XX", ".XX...X.X.XX.X.", "..XXXX.XX......"}

    1

    1

    Returns: 15

  109. {"X.X..X.X...XX.X", "..XX..X........", "..XX.XXXXXXX..X", "X.....XX.XX.XXX", "X.X.XX...XXX...", "XX.X..XXXX...X.", "X...XXXX...XX.X", "XXX.XX........X", ".XX.X...X..XX.X", "XXX.X.X..X..X..", ".XXXX..XXXXXXXX", "..XX..XX.....XX", "XX...XX.X...XXX", "XXX.XX...X..XXX", ".....X.XXXXXXX."}

    1

    1

    Returns: 15

  110. {"X....X..X.X.XXX", ".XXX.X..XXX.X.X", "XXXX.X.....X.X.", "X...X.XX...XXXX", ".XX..XXXXXXXXXX", "X.XX..XXXX.X.XX", ".X.XX..XXX...XX", "XXX..X..XXXXX..", "..X.XX.X.......", "..XX.XXXX..XXXX", "XXX.X.X.XX.X..X", "..XX...XX.XXX.X", ".X.XX.XX....X..", "..X.XX...X.X.XX", "XX...X.X..XX..X"}

    1

    1

    Returns: 15

  111. {"...X.X..X.XXX..", ".XX.XX.X..XXXXX", "X..XX...X...X..", "...XXXXXXXX.XX.", "....XXXXX.X..X.", "XX.X.X.X.XX...X", "..X.X.X.XX.XX..", "XXXX.XXXXX..X..", "...X.XX.XXXX...", ".XXX...XXXXXX..", "XX...XX.XXX..X.", ".XX..X..XX...X.", ".XXXX....XXXX..", "X.X..XX.X.XX..X", "X...XX.XX..XXXX"}

    1

    1

    Returns: 15

  112. {"X.X...X..X...X.", "X..X...XX.X.XXX", "...XX.X...XX...", ".X..X..XX.XX...", "X..X.X.X..XXXXX", "XXXX....XX.X..X", "...XX..XX..X.X.", "XX.........XX.X", ".XX..X....X.XX.", "X.XXXXXX..X.X..", ".XX.XXX..X.X.X.", "...X.X.XX.X...X", "XX..XX..X.XXXX.", "XXXX.XXX..X....", "XXXXX.XX..X...X"}

    1

    1

    Returns: 15

  113. {".XXXXX...X..X..", "X.XXX.X...XX.X.", "XXX.X..X.....XX", ".XXX...XX.X.XXX", "XX.XXXXXX..X..X", "XX....X.X..X...", "XXXX.XX.....X.X", ".......XX.XXXXX", "X.XX.X.XX.XXX..", ".X..X....X.XXXX", "..XXXXXX...X.X.", ".XX.X..X..X...X", "X....X.XX.XX.X.", ".XXXX.X.X......", ".XX..XX....XX.X"}

    1

    1

    Returns: 15

  114. {"X...X..X..X..XX", "XX..X.XX.XXX.XX", "X...XX.X..XX..X", "XX..X...XXX..XX", "XX.XXXXX.XX.XX.", ".XX.X..X.X.X...", "X.XXX...XX..XX.", "XXX.X...X.X.XX.", "XX.X..XX.X..XXX", "X..........X.XX", "...XX.XXXX.X.X.", "XX..X.......X.X", "....XXX........", ".XXXX.XX..X..X.", ".XX...XXX.XX.XX"}

    1

    1

    Returns: 15

  115. {"...XX...X..XXX.", "XXX.XXX.....XXX", ".XX.X..XX.XXX..", "X.X....XX.XX...", "...XXX.X.XXX...", "XX....X....XXX.", ".X...XX.XXX...X", ".X..X.X..X.X...", "..XX.X.X.X.X..X", "XX.XX.....XXX.X", "X.X.XX....X.XX.", "X.XX.XX.X..XX.X", ".XXX.X..X....X.", "......XX..XXX.X", "....X.XX..X..X."}

    1

    1

    Returns: 15

  116. {"...X..XX..XXXX.", ".X..X.X.XX.X.X.", ".X....X.XX.X.X.", ".XXXXXX.X...X.X", ".....XXXX..XXX.", "XXXX...XXX.XXXX", ".XXX.X.XXXXX.X.", "...XX.XX..X.X.X", ".XXX.XX...XXXX.", ".XX....X...X.XX", "...XX......XX..", "..XX.XX.XXXX.X.", ".X....X..X.XX.X", "X.XXXX..XX.....", "X.XXX.X...XXX.X"}

    1

    1

    Returns: 15

  117. {"..XXX..X.XX..XX", "..XX..XX..X.X..", "...XXXXXXXX..XX", "XX....X.XX.XXXX", ".X...X.XXX..X.X", ".X.....X....X.X", "........XXX.X..", ".X..X...XX.XXXX", "XXXX.....XX.X..", "..X..X..XXXX.X.", "..XXXXXXX.X....", "......X.X.X.X.X", "X.X.XX.X.XXX.X.", ".X.XXXX.X..XXXX", "..X.X.XXXX..X.X"}

    1

    1

    Returns: 15

  118. {"XXXX...XX..XXXX", ".XXXX.X.XX..XX.", "X.X.XX..XX.XXX.", ".XXX.X.XXX.XX..", ".X.XX.XX..X.X.X", "X...X.XXXXX....", "X.XX..XXXXX.X..", ".X..X..XX.....X", ".XXXXXX....XXXX", "X......XXXXX.XX", "XXX....X..X....", "X.......XXX..XX", "X...X..XXXXXXXX", "XXXXXX.XXX.X...", "XXX.....X.X.XX."}

    1

    1

    Returns: 15

  119. {"..X...X.XXXX.XX", ".X.XX.XXX.X.X.X", "XX..X....XXX.XX", "X..XXX.X.XX.X..", "XXXXX.XXXX.....", "XX.XXX.X.X..XX.", "X..XXXX.X.XXX..", "XXXXX..XXX.XXXX", "XXXX.XXXX..XXXX", "X..XXXXXXX.X.XX", "XX.X...XXXXX.X.", "X...XXXXX..X..X", "X..XX.XX...X.X.", "..XX....XX.XX..", ".X...X.X......X"}

    1

    1

    Returns: 15

  120. {"...XX....XXXX.X", "X.XX.X.XX.XX.XX", "..X.XX.XXXX...X", "XXX.....XX.....", "X....XXXX...X..", ".XXX.XX.X.XXXXX", "X..X....XX.XXXX", "XXX.XXX.X.X.X.X", "XXXX.XX.XX...XX", ".XXXX..X.XXXXXX", "...XX...X.XX...", "X.X.XX.X.X.X.X.", ".X...XX....XX.X", "X.XX...XX..XX..", "..X.XX......XXX"}

    1

    1

    Returns: 15

  121. {"X.X.XXXX..X..XX", ".XX.X.XX.XX..XX", "X....XXXX.....X", "X..X..X.X.XX.X.", "......X.....X..", "...XXXX.X...XX.", "XX.XXX..X.XX..X", "..X.X.X.X.XXX..", "X.XXX..XXXX..X.", ".X.X...X.X.X.X.", "X...XXX.X.X....", "..X.XX.XXX.X.X.", ".....X.XXXXXXXX", "XXXX.....XX...X", "..X.X..XXX.X.X."}

    1

    1

    Returns: 15

  122. {"XX....X..X..X..", "XX..XX.X..X.XX.", "XXXXXXX.X.XX.X.", "..X....X..XXX..", "XXX.XXX.X..X...", "...XX.XXXXX....", "XX..XXX.XXX..X.", ".XX....XX.X..XX", "X..XX....XXXXX.", ".XXXXXX.X.....X", "XX...X..X..X.X.", ".X...XXXX.XX...", ".XX.X.XX....X..", "..X...X.XX.X.XX", ".X..X...X..XX.X"}

    1

    1

    Returns: 15

  123. {"X......X...XXX.", ".XX.X..X....XX.", "X..X..XX..X.X.X", "X.X....X..X...X", "XXXX.X.....X.XX", "..XX..X.XX..X..", ".X.XX.XX.XX.XXX", ".XX..X..XXXXXX.", "XXXXX...X.X.X..", ".XX.X.XX.X.X.X.", ".....X..X....XX", ".....X.X....XXX", ".XX.XXX.X.....X", "XXXXXX.XX.XX...", "X..X.X.XX.XX..."}

    1

    1

    Returns: 15

  124. {"XXXXX..XXX..X..", "X.XXXXXXX.X..X.", ".X.X.XX......XX", "..XX..XXX.XX.X.", "XXXX.X.X..X.XXX", "..XXXXX.....XXX", "..XXXXXXXXX.X..", "...XXXX..XX.X.X", "X.X...XXX..XXXX", "XX.X.X.X..XXX.X", ".X..X..XX.XXX..", ".XX..X.XX.X.X..", ".X..XX.X.XX....", ".X.XX.XXX.XX..X", ".X..XX..X.X...X"}

    1

    1

    Returns: 15

  125. {"X..X.XXXXXX..XX", "XX...XX.X..XXXX", "..X.XXX...XXXX.", ".X..X.X..XX...X", "X.X....XX....X.", ".XX.X.....XXXXX", "..X.XX.XXXXX.X.", "..XX..XX.XX.X.X", ".X..XXXX..XXXXX", "XXX..X.X.X..XX.", "..X...XX.X.XXX.", ".XXXXX...XX.X..", "X..XX.X.XX.X.XX", ".X.X.X..X.X.X..", "X.XXX.X.......X"}

    1

    1

    Returns: 15

  126. {"...X....", "..X..XX.", "X.......", ".....XXX", "........", "........", "........", "..X....X", "........", "...X...."}

    1

    5

    Returns: 2

  127. {"X.XX..XX..X..XX", "XX..XX.XX.XX...", "XX.XX..X...X.XX", "...............", "...X..XX..XX...", "XX...XXX..XX.XX", "....XXXXX.....X", "...........XXXX", "XX..XX..X.XX..X", "XX.X....X..X.XX", "..X.X.XX..X....", "...XXX.X...X.XX", "XX.X.X.X...X.X.", "X.......X.XX.XX", "XXX...X....X.XX" }

    2

    3

    Returns: 5

  128. {"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..." }

    1

    2

    Returns: 7

  129. {".X...X.........", ".......X.....X.", "......X........", ".....XX........", "......XX.......", ".......X.......", ".X...X.XX.X...X", "X.X.X..X...XXX.", "......XX.......", "......X........", ".....X.........", ".......X.......", ".....XXX.......", "...............", ".......X......." }

    2

    1

    Returns: 5

  130. {"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX" }

    1

    1

    Returns: 15

  131. {"X.X.X.X", ".X.X.X.", "X.X.X.X" }

    2

    1

    Returns: 2

  132. {"X.XXXX..XX..X.X", "..XX...X...X.X.", ".XX..XX..X.X..X", "X...X.....X.X.X", "..XXX..X.X.....", "..XXX...XX.X.X.", ".XX.XX.X..XXX.X", "..XXX...XX.XXX.", "XX.XX.XX.XX.XX.", ".XX.XX.XX.XX.XX", "..XXX...XX.X.X.", ".XX...XXX.XX.X.", "X.XX.X..X.X.X.X", "..XXXX.XXX..XX.", "XX.XX..XXX..XXX" }

    1

    1

    Returns: 15

  133. {"...X...X...X...", "...X...X...X...", ".......X.......", "...X...X...X...", "...X...X...X...", ".......X.......", ".......X.......", "XXXXXXXXXXXXXXX", ".......X.......", ".......X.......", "...X...X...X...", ".......X.......", "...X...X...X...", "...X...X...X...", ".......X......." }

    1

    1

    Returns: 4

  134. {"XXXXX", "X....", "XXX..", "X....", "XXXXX" }

    1

    1

    Returns: 4

  135. {".....X.........", "...............", "...............", "...............", "...............", "X..............", "...............", "..............X", "...............", "...............", "...............", "...............", "...............", ".......X......." }

    3

    3

    Returns: 2

  136. {"X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X.XX.X.X...XX..", "X.XX.X.X...XX..", "X.XX.X.X...XX..", "X.XX.X.X...XX..", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX..." }

    1

    2

    Returns: 6

  137. {"...X.X......X..", ".X........X...X", "...............", "...XX...X...X..", "XX...X.....X.X.", "....X..........", ".X........XX...", "........X..X...", "X......X.......", "X..........X..X", "X....X...X.....", "X.X.........X..", "....X....X..X..", "............X..", "........X.X..X." }

    2

    3

    Returns: 5

  138. {"..", ".." }

    1

    1

    Returns: 0

  139. {".....X.....", ".....X.....", ".....X.....", ".....X.....", ".....X.....", "XXXXXXXXXXX", ".....X.....", ".....X.....", ".....X.....", ".....X.....", ".....X....." }

    1

    1

    Returns: 2

  140. {".....", ".....", ".....", ".....", "....." }

    1

    2

    Returns: 0

  141. {"X.X....", "X.X....", "X.X....", "X.X....", "....X.X" }

    1

    2

    Returns: 3

  142. {"....X", "....X", "...X.", "..X..", "XX..." }

    2

    2

    Returns: 2

  143. {"X" }

    5

    5

    Returns: 1

  144. {".XX.X.XXX.X.X..", "...XX...X.X.X..", ".XXX.X.X.X.XX.X", "...X.X.X.XX.X.X", "....X...X..X.XX", "XX...XXX...X.X.", "X......XX.X.X..", ".X.XXX.X..XX..X", "XX..XXX...XX.X.", ".X..XXXX.X.X.X.", ".X.XX...XX.XXX.", "XXXXXXX.X...X.X", "X..X.XX.XXXX.X.", "XXXXXX.X...XX.X", "XXX..XX.......X" }

    1

    1

    Returns: 15

  145. {"." }

    2

    1

    Returns: 0

  146. {"X.X.......XXX..", "X.XXXXXXXX.XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.X.......XXX..", "X.XXX..X...XX.X", "X.X.......XXX..", "X.X.......XXX.." }

    1

    3

    Returns: 4

  147. {"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..." }

    4

    3

    Returns: 3

  148. {"X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X" }

    1

    3

    Returns: 2

  149. {"...X.", "XXXXX", "...X.", "...X.", "...X." }

    1

    1

    Returns: 2

  150. {"." }

    1

    1

    Returns: 0

  151. {"....X..........", ".......X.......", "..........X....", "....X..........", ".....X...X.....", ".........XX....", "............X..", "...............", ".X.....XX......", "..........X....", "...X..XX......X", ".............X.", "...............", ".........X..X..", "..........X...." }

    1

    2

    Returns: 6

  152. {".....", ".....", ".....", ".....", "....." }

    1

    1

    Returns: 0

  153. {"X.X..X..X......", ".XXXXXXXX..X.X.", "X..X.XXXXX..X..", ".XXX..XX..X.XXX", "XX.X..XXXXX.XX.", "X..XXX..X.XX.XX", "X.XXX.X..XX...X", "X...XXX.XX..X.X", ".XX..X.X.X.X.XX", "XXXXX..X.X.XXX.", "X......XX.X.X..", "XXXX.XXX.X...XX", "X.......X.X.X.X", "XX.XXXXX...XXXX", "..X..X.XXXXX..X" }

    2

    2

    Returns: 8

  154. {"X..............", ".X.............", "..X............", "...X...........", "....X..........", ".....X.........", "......X........", ".......X.......", "........X......", ".........X.....", "..........X....", "...........X...", "............X..", ".............X.", "..............X" }

    1

    1

    Returns: 15

  155. {"......", "......", "......", "...X..", "......", "......" }

    2

    3

    Returns: 1

  156. {".X.", "XXX", ".X." }

    1

    1

    Returns: 2

  157. {"..X..", "..X..", "XXXXX", "..X..", "..X.." }

    1

    1

    Returns: 2

  158. {"X....", ".....", ".....", ".....", "....X" }

    1

    2

    Returns: 2

  159. {"..XXXXXXXXXX..", "..XXXXXXXXXX..", "..XXXXXXXXXX..", "......XX......", "......XX......", "......XX......", "..XXXXXXXXXX..", "..XXXXXXXXXX..", "......XX......", "......XX......" }

    2

    2

    Returns: 4

  160. {"..X.X..", "..X.X..", "..X.X..", ".XX.XX.", ".XX.X..", "..X.X..", "..X.X.." }

    1

    3

    Returns: 2

  161. {"XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X......." }

    2

    1

    Returns: 6

  162. {"." }

    2

    2

    Returns: 0

  163. {"XX", "XX" }

    1

    1

    Returns: 2

  164. {".XX............", "XXXXX..........", "X..............", ".X.............", "..X............", "......XX.......", ".....XXX.......", ".....XXX.......", "........X...XX.", ".........X.X.X.", "........X.XX...", "........XXX.XXX", "........XX.X...", "........X.XX...", "........X...XX." }

    2

    2

    Returns: 7

  165. {"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXX.", "XXXXX.XXXXXXXXX", "XXXXXXXXXXXXXXX" }

    1

    1

    Returns: 14

  166. {"...............", "........X......", ".............XX", "...X...........", "...............", "...X...........", "..........X....", "...X........X..", "...............", ".......X.......", "....X..........", "...............", "..X........X...", "...X...........", "........X......" }

    3

    4

    Returns: 3

  167. {".XXX.", ".....", ".....", "X.XXX" }

    3

    1

    Returns: 2

  168. {".XXX..", ".X....", ".XX...", "..X...", "......", "......" }

    1

    1

    Returns: 3

  169. {"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..." }

    15

    15

    Returns: 1

  170. {"X...", ".XX.", "....", ".XX.", ".XX.", "....", ".XX.", "...X" }

    2

    2

    Returns: 2

  171. {"............", "............", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX....." }

    5

    3

    Returns: 2

  172. {"X..X", "X..X", "X..X", "X..X", "X..X" }

    1

    2

    Returns: 2

  173. {"XXXXXXXXXX", "XXXXXXXXXX" }

    1

    2

    Returns: 2

  174. {"X....", "X....", "X....", "XXX..", "XX.X.", "XX..X" }

    1

    1

    Returns: 4

  175. {"X.X", "X.X", "X.X", "X.X", "X.X", "X.X" }

    1

    3

    Returns: 1

  176. {"...X.", ".XX.X", "X.XX.", ".....", "...X." }

    2

    1

    Returns: 2

  177. {"XX....XX", "..XXXX..", "..XXXX..", "..XXXX..", "..XXXX..", "...XX..." }

    1

    2

    Returns: 3

  178. {"...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "..............." }

    1

    1

    Returns: 0

  179. {".XX.......", ".XXX......", ".XX.......", "XXX.......", "..........", "..........", ".........." }

    1

    2

    Returns: 2

  180. {"XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X.." }

    14

    13

    Returns: 1

  181. {".XX.", "XXXX", "XXXX", ".XX.", "....", "XXXX", "XXXX" }

    2

    1

    Returns: 3

  182. {"X.XXXXXXXX.XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.XXX..X...XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.X.......XXX.." }

    1

    3

    Returns: 4

  183. {".XX.", ".XX.", ".XX.", ".XX." }

    2

    2

    Returns: 1

  184. {"XX.X..", "XX.X..", "XX...X", "XX...X" }

    2

    2

    Returns: 2

  185. {"XXXXX", ".....", ".....", ".....", "XXXXX" }

    2

    1

    Returns: 2

  186. {"..........X.X", "......X....X.", ".X........XX.", "X............", ".X...X.X..XX." }

    2

    9

    Returns: 2

  187. {"XXX...X.X....XX", "X.XX.XXXX..XX.X", "X..X.XX.XX...X.", "..X..X.X..XXXX.", ".XXX.XX..XXXX..", ".XXX...X.XX....", "....XX..X.XXX..", "...X....X.XXX.X", "..X.XX.X.....XX", "....XX.X...X.X.", "..XX.X..XXXX.X.", "..X.X.X.XXXX...", "XXXX..X...X..XX", ".X.XX....XXX.X.", "..XXX..X.....XX" }

    1

    1

    Returns: 15

  188. {"XX.X", "XX.X" }

    1

    4

    Returns: 1

  189. {"XX", "XX" }

    1

    2

    Returns: 1

  190. {".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X." }

    2

    2

    Returns: 8

  191. {"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXX.XXXXXXXXXX", "XXXXXXXXXX.XXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXX.XXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXX.XXXXX", "XXXXXXXXXXXXXXX" }

    1

    1

    Returns: 15

  192. {"XXX..", "XXX..", "...XX", "...XX", "...XX" }

    1

    1

    Returns: 4

  193. {"...............", "..XX...........", "...XX..........", "....XX.........", ".....XX........", "......XX.......", ".......XX......", "........XX.....", ".........X.....", "......X....X...", ".....X.....XX..", "....X.......XX.", ".....X.......X.", "......XX.......", "......X........" }

    1

    1

    Returns: 11

  194. {"X...", "....", "....", "...X" }

    2

    2

    Returns: 2

  195. {"X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X...X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.XXXXX.X", ".X.X.X.X.X.X.X.", "X...X.X.X.X.X.X" }

    1

    1

    Returns: 14

  196. {"X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X" }

    1

    3

    Returns: 5

  197. {"X.XXXXXXXX.XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.XXX..X...XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.X.......XXX.." }

    1

    2

    Returns: 6


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: