Statistics

Problem Statement for "BalancedChessboard"

Problem Statement

We have a standard chessboard. The chessboard is a big square that is divided into 8x8 unit square cells. Both rows and columns of the chessboard are numbered from 0 to 7.

The center of mass of an empty chessboard is exactly in its middle: at the point between columns 3 and 4 horizontally and between rows 3 and 4 vertically.


There are some identical pawns currently placed on the chessboard. Each pawn is placed exactly in the middle of one of the cells. (No two pawns share the same cell.)

You are given the String[] board that represents the current board: 'O' (capital oh) is a cell with a pawn, '-' is an empty cell.


You have a potentionally infinite supply of additional pawns, all identical to the ones already present on the chessboard.

You are going to place some (possibly none) additional pawns onto the board. Pawns must be added one at a time. Each pawn must be placed into the middle of a currently empty cell.

The pawns that are already on the board must remain where they are. It is not allowed to move or remove them.


Your primary goal: After you are done adding the pawns, the center of mass of the entire chessboard (the board plus all the pieces) must be exactly in the middle of the chessboard.

Your secondary goal: Add as few pawns as possible.


Return a String[] that describes the chessboard after you added all the pawns you wanted to add. Use the same format as the input.

If there are multiple optimal solutions, you may return any one of them.

Definition

Class:
BalancedChessboard
Method:
addPawns
Parameters:
String[]
Returns:
String[]
Method signature:
String[] addPawns(String[] board)
(be sure your method is public)

Notes

  • A pawn is perfectly symmetric: the center of mass of a single pawn is in the middle of the pawn.
  • We only care about the two horizontal coordinates of the center of mass. Its vertical coordinate may be arbitrary (and depends on the unknown shape of the pawns).
  • If you have a collection of identical objects (e.g., your pawns), their center of mass lies at the arithmetic average of the centers of mass of those individual objects.
  • The same is true for an arbitrary collection of objects, the only difference is that the arithmetic average becomes a weighted average in which the weights are the actual weights of the objects.

Constraints

  • board will have exactly 8 elements.
  • Each element of board will have exactly 8 characters.
  • Each character in board will be either 'O' or '-'.

Examples

  1. {"O------O", "--------", "--------", "--------", "--------", "--------", "--------", "O------O"}

    Returns: {"O------O", "--------", "--------", "--------", "--------", "--------", "--------", "O------O" }

    This chessboard already has its center of mass in its center, so the only optimal solution is to add zero pawns.

  2. {"O------O", "--------", "--------", "--------", "--------", "--------", "--------", "-------O"}

    Returns: {"O------O", "--------", "--------", "--------", "--------", "--------", "--------", "O------O" }

    The optimal solution here is to add the pawn that will turn this chessboard into the one from Example 0.

  3. {"--------", "--------", "--------", "--------", "-----O--", "----O---", "--------", "--------"}

    Returns: {"--------", "--------", "-----O--", "O-------", "-----O--", "----O---", "--------", "--------" }

    This test case has a nice symmetric optimal solution. However, there are also other optimal solutions that aren't symmetric. The example output shows one such solution.

  4. {"OOOOOOOO", "--------", "--------", "--------", "--------", "--------", "--------", "--------"}

    Returns: {"OOOOOOOO", "--------", "--------", "--------", "--------", "--------", "--------", "OOOOOOOO" }

    The best way to balance out the pawns in the top row is to add pawns into the bottom row.

  5. {"----OOOO", "----OOOO", "----OOOO", "----OOOO", "----OOOO", "----OOOO", "----OOOO", "----OOOO"}

    Returns: {"OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO" }

  6. {"---O-O--", "---O-O--", "-O--O---", "-O--O---", "---O-O--", "-O--O---", "OOO---OO", "-OOOO-O-"}

    Returns: {"---OOOOO", "O--OOOO-", "-O--O---", "-O--O---", "---O-O--", "-O--O---", "OOO---OO", "-OOOO-O-" }

  7. {"--------", "--------", "--------", "--------", "----OO--", "----OO--", "--------", "--------"}

    Returns: {"--------", "---O----", "O-------", "--------", "----OO--", "----OO--", "--------", "--------" }

  8. {"--------", "--------", "--------", "--------", "--------", "--------", "--------", "--------"}

    Returns: {"--------", "--------", "--------", "--------", "--------", "--------", "--------", "--------" }

    A board with no pawns is already perfectly balanced.

  9. {"O----OO-", "---O--OO", "OO---OO-", "-OO--O-O", "O----O-O", "---OO-OO", "OO-----O", "O-O-OO--"}

    Returns: {"O----OO-", "O--O--OO", "OO---OO-", "OOO--O-O", "O----O-O", "---OO-OO", "OO-----O", "O-O-OO--" }

  10. {"--------", "-----O--", "--------", "O-------", "--O----O", "O-------", "-O------", "----O---"}

    Returns: {"--------", "-----O-O", "----OO--", "O-------", "--O----O", "O-------", "-O------", "----O---" }

  11. {"--OO-OOO", "O--O--OO", "-O-O-O-O", "OOOO---O", "------O-", "OOO-O-O-", "O-O-OOOO", "O-OO---O"}

    Returns: {"--OO-OOO", "O--O--OO", "-OOO-O-O", "OOOO---O", "-O----O-", "OOO-O-O-", "O-O-OOOO", "O-OO---O" }

  12. {"--O--O-O", "O-OOOOOO", "--O-OOOO", "O-OOO-O-", "OO-OOO-O", "OOOOO-O-", "OOO-O---", "O-O-OO-O"}

    Returns: {"--O--O-O", "O-OOOOOO", "--O-OOOO", "OOOOOOOO", "OO-OOO-O", "OOOOO-O-", "OOO-O---", "O-O-OO-O" }

  13. {"OOO-OO--", "-OO-O-OO", "--O--OOO", "OOOOOOO-", "-OOOO-OO", "-OOOOOO-", "OO-OO-OO", "-OOOOOOO"}

    Returns: {"OOO-OO--", "OOOOOOOO", "-OOOOOOO", "OOOOOOO-", "-OOOO-OO", "-OOOOOO-", "OO-OO-OO", "-OOOOOOO" }

  14. {"OOOOOOOO", "OOOOOOOO", "OOO-OOO-", "O--OOOO-", "-OOOOO-O", "OOOOOOOO", "O-O-OOOO", "OO-O-O-O"}

    Returns: {"OOOOOOOO", "OOOOOOOO", "OOO-OOO-", "O--OOOO-", "-OOOOO-O", "OOOOOOOO", "OOOOOOOO", "OO-OOOOO" }

  15. {"OOOOO-O-", "O-OOO-OO", "-OOO-OOO", "OO-OO--O", "OOOOOO-O", "-O--OOO-", "-OO-O-OO", "-OO-OO-O"}

    Returns: {"OOOOO-O-", "O-OOO-OO", "-OOO-OOO", "OO-OO--O", "OOOOOO-O", "-OO-OOOO", "OOO-OOOO", "-OO-OO-O" }

  16. {"--------", "--------", "--------", "--------", "--------", "--------", "--------", "--------"}

    Returns: {"--------", "--------", "--------", "--------", "--------", "--------", "--------", "--------" }

  17. {"O-OOOOOO", "OOO-OOOO", "O-OO-OOO", "O-OO-OOO", "OOOOOOOO", "O-OOO-OO", "OOOOOOOO", "OOOOOOOO"}

    Returns: {"OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO" }

  18. {"--------", "--------", "-------O", "--------", "--------", "--------", "-O---O--", "-------O"}

    Returns: {"OO------", "--------", "-------O", "--------", "--------", "--------", "-O---O--", "-------O" }

  19. {"OOOOOOOO", "OOOOOOOO", "OOOOO-OO", "OOOOOOOO", "OOO-OOOO", "OO--O-OO", "OOO-OOOO", "OOOOOOOO"}

    Returns: {"OOOOOOOO", "OOOOOOOO", "OOOOO-OO", "OOOOOOOO", "OOOOOOOO", "OO-OOOOO", "OOOOOOOO", "OOOOOOOO" }

  20. {"OO------", "-OO-----", "------OO", "O----OOO", "OO--O---", "-------O", "O-----O-", "OO------"}

    Returns: {"OO------", "-OO-----", "------OO", "O---OOOO", "OO--O-OO", "------OO", "O-----O-", "OO------" }

  21. {"OO-OOOOO", "OO-OOOOO", "OOOO--OO", "OOOO--OO", "OO-O--O-", "OOOOO-OO", "O-OOOOOO", "-OO-O-OO"}

    Returns: {"OO-OOOOO", "OO-OOOOO", "OOOO--OO", "OOOOO-OO", "OO-O--O-", "OOOOO-OO", "O-OOOOOO", "-OOOOOOO" }

  22. {"OO--OOOO", "OOOOOOOO", "O-OOOOOO", "OOOO-OOO", "--OOO-OO", "OOOOOOOO", "OO-OOOOO", "OOOOOOOO"}

    Returns: {"OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO" }

  23. {"OOOOO--O", "OOO-OOOO", "-O-OOOOO", "OOOOOO-O", "OOOO-OOO", "OOOO-OOO", "OOOO-OOO", "OO-OOOOO"}

    Returns: {"OOOOO-OO", "OOO-OOOO", "-OOOOOOO", "OOOOOO-O", "OOOO-OOO", "OOOO-OOO", "OOOO-OOO", "OO-OOOOO" }

  24. {"--OO---O", "-O-O----", "---OO-O-", "---O--OO", "O--O---O", "---O----", "---O-OOO", "-OO----O"}

    Returns: {"--OO---O", "-O-O----", "O--OO-O-", "OO-O--OO", "OO-O---O", "---O----", "---O-OOO", "-OO----O" }

  25. {"OOOOOOOO", "OOO--OOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO"}

    Returns: {"OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO" }

  26. {"O-OOOOOO", "-O-OOOOO", "O-OOOO-O", "OOOO-OO-", "OO-OO--O", "O-OOOOOO", "O-OOOOO-", "--O---OO"}

    Returns: {"O-OOOOOO", "-O-OOOOO", "O-OOOO-O", "OOOO-OO-", "OO-OO--O", "O-OOOOOO", "OOOOOOO-", "OOO--OOO" }

  27. {"O-OOOOOO", "OOOOOO-O", "OOO-OOOO", "OOOOOOOO", "OOOOOOO-", "-OOOO-OO", "OOOOOOO-", "OOOO-OOO"}

    Returns: {"O-OOOOOO", "OOOOOO-O", "OOO-OOOO", "OOOOOOOO", "OOOOOOOO", "-OOOOOOO", "OOOOOOO-", "OOOO-OOO" }

  28. {"--O-O--O", "--OOO-OO", "------O-", "O-OO---O", "--OO----", "---O-O-O", "------O-", "---O----"}

    Returns: {"--O-O--O", "--OOO-OO", "------O-", "O-OO---O", "--OO----", "--OO-O-O", "OOO-O-O-", "O--O----" }

  29. {"-OOOOOOO", "OOO-OOOO", "O-OOO-O-", "OOO-OOO-", "OOO--OO-", "-OOOO-O-", "O-OOOO--", "-O-O-OOO"}

    Returns: {"-OOOOOOO", "OOO-OOOO", "O-OOO-O-", "OOO-OOO-", "OOO--OO-", "-OOOO-OO", "OOOOOOOO", "-OOO-OOO" }

  30. {"--O---O-", "-----O--", "O---OO--", "--O-----", "-O---OO-", "------O-", "-------O", "--O-----"}

    Returns: {"--O---O-", "-----O--", "O---OO--", "--O-----", "-O---OO-", "--OO--O-", "O------O", "--O-----" }

  31. {"---O-O--", "-OO---O-", "-O---O-O", "-O-O---O", "--------", "--------", "O-OOO---", "-----O--"}

    Returns: {"---O-O--", "-OO---O-", "-O---O-O", "-O-O---O", "--------", "--------", "O-OOO---", "--O--OO-" }

  32. {"--------", "--------", "--------", "--------", "--------", "--------", "--------", "----O---"}

    Returns: {"---O----", "--------", "--------", "--------", "--------", "--------", "--------", "----O---" }

  33. {"OOO-OOOO", "-OOOOOOO", "--O--O--", "OO--O-OO", "-OOO-O--", "--OO-OOO", "O-OO-OOO", "OO-O-O-O"}

    Returns: {"OOO-OOOO", "-OOOOOOO", "--O--O--", "OO--O-OO", "OOOO-O--", "-OOO-OOO", "O-OO-OOO", "OOOO-O-O" }

  34. {"--------", "-O----O-", "OO--O---", "-O--OO--", "--O---O-", "-O-----O", "---O--O-", "-O------"}

    Returns: {"--------", "-O----O-", "OO--O---", "-OO-OOOO", "--O---O-", "-O-----O", "---O--O-", "-O------" }

  35. {"--OO---O", "--------", "O-OOO---", "-O--O---", "-OO-----", "O---OO--", "O-OOOOOO", "OO-OO---"}

    Returns: {"--OOOOOO", "-----OOO", "O-OOO-O-", "-O--O---", "-OO-----", "O---OO--", "O-OOOOOO", "OO-OO---" }

  36. {"--------", "--------", "--------", "--------", "--------", "--------", "--------", "--------"}

    Returns: {"--------", "--------", "--------", "--------", "--------", "--------", "--------", "--------" }

  37. {"O--OO-OO", "O-OOOO-O", "-O-OO-OO", "OO-OOOO-", "OOOOOOOO", "OOOOO-O-", "O-O-OO-O", "OOOOOO-O"}

    Returns: {"O--OOOOO", "O-OOOO-O", "OO-OOOOO", "OO-OOOOO", "OOOOOOOO", "OOOOO-O-", "O-O-OO-O", "OOOOOO-O" }

  38. {"--------", "--------", "----O-O-", "------O-", "-----O--", "--------", "--------", "-O------"}

    Returns: {"--------", "--------", "----O-O-", "--O-O-O-", "O----O--", "--------", "--------", "-O------" }

  39. {"-O------", "--------", "--------", "--O---O-", "O---OOO-", "--O--O-O", "-------O", "----OO--"}

    Returns: {"-O------", "O-OOO---", "O-------", "--O---O-", "O---OOO-", "--O--O-O", "-------O", "----OO--" }

  40. {"-OO-----", "O-------", "---OOOO-", "-----O-O", "-OO-OOOO", "---O-OO-", "------O-", "--O-O--O"}

    Returns: {"OOO-----", "O-------", "O--OOOO-", "O----O-O", "-OO-OOOO", "O--O-OO-", "------O-", "--O-O--O" }

  41. {"--O--OO-", "--------", "------O-", "--------", "------O-", "-O-O---O", "-OO-----", "O-------"}

    Returns: {"--O--OO-", "--------", "---O--O-", "--------", "------O-", "-O-O---O", "-OO-----", "O-------" }

  42. {"O-OO----", "OO-----O", "-O-----O", "O-O----O", "----OOO-", "O-OOO--O", "-O-OOOOO", "---OO--O"}

    Returns: {"OOOO-O--", "OOOO---O", "-O-----O", "O-O----O", "----OOO-", "O-OOO--O", "-O-OOOOO", "---OO--O" }

  43. {"-O--OO-O", "O-O--O-O", "OOO-OO--", "OO-O--O-", "OO-OO-OO", "----O---", "OOOO-OO-", "--O-----"}

    Returns: {"-O--OO-O", "O-O--O-O", "OOO-OO--", "OO-O--O-", "OO-OO-OO", "----OOOO", "OOOO-OOO", "--O-O---" }

  44. {"OOO-OOOO", "O-O-OOOO", "OO-OOOOO", "OOOO-OOO", "OOOOOOO-", "OOOOOOOO", "OOOO-O-O", "OOOOOOOO"}

    Returns: {"OOOOOOOO", "O-O-OOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOO-O-O", "OOOOOOOO" }

  45. {"----O---", "--O-O---", "--------", "-O------", "O-------", "--------", "--------", "---OO---"}

    Returns: {"----O---", "--O-O---", "--------", "-O------", "O---O-OO", "--------", "--------", "---OO---" }

  46. {"-OOOOOOO", "OOOOOO-O", "OOO---OO", "OOO--OOO", "OOOOOOOO", "OOO-OOOO", "OOOOOO-O", "OO-OOOOO"}

    Returns: {"-OOOOOOO", "OOOOOO-O", "OOOO-OOO", "OOOOOOOO", "OOOOOOOO", "OOO-OOOO", "OOOOOO-O", "OO-OOOOO" }

  47. {"-O-O----", "--------", "--------", "------OO", "--OO----", "-----OO-", "-O-O----", "-------O"}

    Returns: {"-O-O----", "--------", "O-OO----", "------OO", "--OO----", "-----OO-", "-O-O----", "-------O" }

  48. {"-O------", "--O-----", "-OO--O--", "--------", "---OO---", "OO------", "--------", "------OO"}

    Returns: {"-O------", "--O-----", "-OO--O--", "-----O-O", "---OOO--", "OO------", "--------", "------OO" }

  49. {"--OOOOOO", "OOO-OOOO", "OOOOOOOO", "OOOO-OOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "-OOOOOO-"}

    Returns: {"-OOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOO-" }

  50. {"-----O--", "-OO-----", "--------", "--------", "--------", "---O----", "----O---", "---O----"}

    Returns: {"-----O--", "-OO-----", "--------", "--------", "----O-O-", "---O----", "----O---", "---O----" }

  51. {"-OO--OO-", "O----O--", "O--O----", "O---O---", "-OO--O--", "-------O", "-O-O----", "---O---O"}

    Returns: {"-OO--OO-", "O----O--", "O--O----", "O---O---", "-OO--O--", "-----OOO", "-O-O-OO-", "---O---O" }

  52. {"OOO-O---", "OO-OOO--", "OOOOOOOO", "OOO-OO-O", "OOOOO--O", "OOOOOO--", "-OOOOOOO", "OOOO--O-"}

    Returns: {"OOO-O-OO", "OO-OOOOO", "OOOOOOOO", "OOO-OOOO", "OOOOOO-O", "OOOOOOOO", "-OOOOOOO", "OOOO--OO" }

  53. {"--OOOOOO", "O---O--O", "----OOOO", "-O----O-", "OO---O--", "--OO-O--", "-OO-OOOO", "--OOOOO-"}

    Returns: {"--OOOOOO", "O---O--O", "OOO-OOOO", "OO----O-", "OOO--O--", "O-OO-O--", "-OO-OOOO", "--OOOOO-" }

  54. {"--------", "---O----", "--------", "--------", "--------", "--------", "--------", "--------"}

    Returns: {"--------", "---O----", "--------", "--------", "--------", "--------", "----O---", "--------" }

  55. {"--OO--OO", "------O-", "-O------", "----OO--", "OO---OO-", "O-OO----", "-O-----O", "OOO-OO--"}

    Returns: {"--OO-OOO", "-----OOO", "-O-O----", "----OO--", "OO---OO-", "O-OO----", "-O-----O", "OOO-OO--" }

  56. {"OOOOOOOO", "OO-OOOOO", "OOOOOOOO", "OOOOOO-O", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO"}

    Returns: {"OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO", "OOOOOOOO" }

  57. {"-O-----O", "--------", "---O----", "O-O-O-O-", "--O-----", "--------", "--O-----", "O----OO-"}

    Returns: {"-O-----O", "--------", "---O-OO-", "O-O-O-O-", "--O-----", "--------", "--O-----", "O----OO-" }

  58. {"OOO-OOO-", "O-OOOOOO", "OOO-OOOO", "OOOO-OOO", "OOOO---O", "O-O--OOO", "O--OO---", "OO--OOO-"}

    Returns: {"OOO-OOO-", "O-OOOOOO", "OOO-OOOO", "OOOO-OOO", "OOOO---O", "O-O-OOOO", "OOOOOOOO", "OO--OOOO" }

  59. {"OOOOO--O", "OOOO--O-", "OOOO--O-", "OOO-O---", "-O-O---O", "-O---O--", "O-O-----", "--------"}

    Returns: {"OOOOO--O", "OOOO--O-", "OOOO--O-", "OOO-O--O", "-O-O-OOO", "-O---OOO", "O-OOOOOO", "--O-OOOO" }

  60. {"----OO--", "--O-----", "OOO-----", "---OO-O-", "O---O---", "O-O---O-", "O---OOO-", "OO--O---"}

    Returns: {"----OO-O", "--O----O", "OOO--OOO", "---OO-O-", "O---O---", "O-O---O-", "O---OOO-", "OO--O---" }

  61. {"OOOOO-OO", "OOOO-OOO", "O-O-O---", "OOOO----", "O-O--O--", "OOO-O---", "OOO-O---", "----O---"}

    Returns: {"OOOOO-OO", "OOOO-OOO", "O-O-O--O", "OOOO---O", "O-O--OOO", "OOO-OOOO", "OOOOOOOO", "--OOO-OO" }

  62. {"--------", "----O-O-", "--O-OOO-", "--O--OOO", "--O-OO-O", "--OO--OO", "--OOOOOO", "O--OOOOO"}

    Returns: {"OOOO-O--", "OOOOO-O-", "OOO-OOO-", "OOO--OOO", "O-O-OO-O", "--OO--OO", "--OOOOOO", "O--OOOOO" }

  63. {"--------", "O----OOO", "--O--OO-", "----O-O-", "-----OOO", "--O---O-", "--OO--OO", "-----O--"}

    Returns: {"O-------", "O----OOO", "OOO--OO-", "O---O-O-", "O----OOO", "O-O---O-", "O-OO--OO", "-----O--" }

  64. {"O---O-OO", "-O---OOO", "O-O----O", "------OO", "O-------", "----OOO-", "-----O-O", "---O----"}

    Returns: {"O---O-OO", "-O---OOO", "O-O----O", "------OO", "O---O---", "OOO-OOO-", "OOO--O-O", "O--O----" }

  65. {"-OO-----", "OOO-O-O-", "-------O", "O-OOOO--", "O-OOO---", "OOO-O---", "OO-OO---", "OOOO--O-"}

    Returns: {"-OO---OO", "OOO-OOOO", "-----OOO", "O-OOOOOO", "O-OOO-OO", "OOO-OO-O", "OO-OO---", "OOOO--O-" }

  66. {"O--O-O--", "-O-OO---", "O---O---", "-OOO----", "O-------", "O-------", "-O------", "--------"}

    Returns: {"O--O-O--", "-O-OO---", "O---O---", "-OOO----", "O------O", "O-----OO", "-O---OOO", "-----O-O" }

  67. {"----OOOO", "----OO-O", "-O-OOOOO", "--OOO-OO", "--O-O-O-", "--O-O-OO", "---OOO-O", "--------"}

    Returns: {"----OOOO", "----OO-O", "OO-OOOOO", "OOOOO-OO", "OOOOO-O-", "OOOOO-OO", "OO-OOO-O", "OO------" }

  68. {"--------", "----O-OO", "--O--O--", "----OOOO", "-O--OOOO", "-O-O-OOO", "O----O-O", "-OOOOOOO"}

    Returns: {"OOOO----", "OOO-O-OO", "OOOOOO--", "OOOOOOOO", "-O--OOOO", "-O-O-OOO", "O----O-O", "-OOOOOOO" }

  69. {"--------", "--------", "-------O", "--------", "--------", "-O-OO---", "--------", "---OO---"}

    Returns: {"--------", "-O-OOO--", "-------O", "--------", "--------", "-O-OO---", "--------", "---OO---" }

  70. {"O-OO--OO", "OOO-O---", "O-OO-O--", "O-OO-O--", "--------", "--O-----", "OO---O--", "--------"}

    Returns: {"O-OO--OO", "OOO-O---", "O-OO-O--", "O-OO-O--", "-------O", "--O--OOO", "OO--OOOO", "--O-OOO-" }

  71. {"--------", "---O--O-", "-----OO-", "--O--O--", "--OOO-OO", "O-OOO-OO", "--OOOOOO", "---OOO--"}

    Returns: {"OOO-OO--", "OOOO--O-", "OO---OO-", "--O--O--", "--OOO-OO", "O-OOO-OO", "--OOOOOO", "---OOO--" }

  72. {"OOOOO--O", "O--O--OO", "O--O----", "-O-O-OOO", "-O------", "O-------", "-O------", "--------"}

    Returns: {"OOOOO--O", "O--O--OO", "O--O----", "-O-O-OOO", "-O------", "O-------", "-O---OOO", "O-OOOOOO" }

  73. {"--OO---O", "--O--OO-", "---OOO-O", "-------O", "---OOO--", "----OO--", "--------", "-------O"}

    Returns: {"--OO---O", "--O--OO-", "---OOO-O", "-------O", "---OOO--", "OOO-OO--", "OO------", "OO-----O" }

  74. {"O-------", "--------", "O-------", "-----O--", "OO-O--O-", "O-------", "O-------", "-O--O---"}

    Returns: {"O-------", "-------O", "O----OOO", "-----OOO", "OO-O-OO-", "O-------", "O-------", "-O--O---" }

  75. {"-----O--", "---O---O", "---O----", "-O-OOOO-", "---OO-OO", "------O-", "-OOO-O-O", "-OOOOOOO"}

    Returns: {"OOO-OOO-", "OOOO---O", "OO-O----", "-O-OOOO-", "---OO-OO", "------O-", "-OOO-O-O", "-OOOOOOO" }

  76. {"---OOOOO", "----OOOO", "-OO-OOOO", "-OO--OO-", "O-OO-O--", "--O---OO", "--OOOO--", "--O-----"}

    Returns: {"---OOOOO", "----OOOO", "-OO-OOOO", "-OO--OO-", "O-OO-O--", "OOO---OO", "OOOOOO--", "OOOO----" }

  77. {"--------", "----OO--", "-----O--", "-------O", "-----O--", "----OO--", "-----OOO", "-------O"}

    Returns: {"--------", "OO--OO--", "OO---O--", "O------O", "OO---O--", "----OO--", "-----OOO", "-------O" }

  78. {"---O----", "-------O", "-OO-O--O", "----OO-O", "---O--OO", "O--OOOOO", "---OOOOO", "OO--OOOO"}

    Returns: {"OOOO--O-", "OOOOO--O", "OOOOO--O", "OOO-OO-O", "O--O--OO", "O--OOOOO", "---OOOOO", "OO--OOOO" }

  79. {"---O--OO", "------O-", "-O------", "----O-O-", "-OO-OO-O", "---O-O--", "-O-OO--O", "---O-OOO"}

    Returns: {"OO-O--OO", "OO----O-", "OO------", "O---O-O-", "-OO-OO-O", "---O-O--", "-O-OO--O", "---O-OOO" }

  80. {"OOOOO-OO", "OOOO-OOO", "OOOO----", "OOOOOO--", "O-O-----", "O---O---", "OO--O---", "--------"}

    Returns: {"OOOOO-OO", "OOOO-OOO", "OOOO----", "OOOOOO-O", "O-O-OOOO", "O---OOOO", "OOOOOOOO", "-O-OOOOO" }

  81. {"-------O", "-------O", "-O--OOOO", "-----O-O", "--O-OOOO", "-OO-O-OO", "-O-O-OOO", "--O-O-OO"}

    Returns: {"OOO----O", "OOOO---O", "OOO-OOOO", "OO---O-O", "OOO-OOOO", "OOO-O-OO", "-O-O-OOO", "--O-O-OO" }

  82. {"-O------", "----OO--", "---O--O-", "---OOO--", "-O-OOOOO", "----OOOO", "O--OOO-O", "--OOO-OO"}

    Returns: {"OOOO----", "OOO-OO--", "OOOOOOO-", "O--OOO--", "-O-OOOOO", "----OOOO", "O--OOO-O", "--OOO-OO" }

  83. {"--------", "--------", "--------", "O-------", "--------", "-O------", "O-------", "OO-O----"}

    Returns: {"-------O", "-----OOO", "-----O-O", "O-------", "--------", "-O------", "O-------", "OO-O----" }

  84. {"OOO-O---", "OOO---O-", "OOO-OO--", "OOOOO---", "-OO-OOO-", "O---O---", "O---OOO-", "OO--OO--"}

    Returns: {"OOO-O---", "OOO---OO", "OOO-OOOO", "OOOOO-OO", "-OO-OOOO", "O--OO-OO", "O---OOOO", "OO--OOO-" }

  85. {"---O-OOO", "----OOOO", "-O---OO-", "----O--O", "O-------", "-------O", "-----O-O", "--------"}

    Returns: {"---O-OOO", "----OOOO", "-O---OO-", "----O--O", "OOO-----", "OOO----O", "OOOO-O-O", "OO------" }

  86. {"-------O", "-O--O---", "-O----O-", "--------", "--------", "--------", "------O-", "--------"}

    Returns: {"-------O", "-O--O---", "-O----O-", "--------", "--------", "-------O", "OOO---O-", "--------" }

  87. {"--OOOO-O", "-OO-O-OO", "-----OO-", "--------", "-----O--", "------O-", "--------", "--------"}

    Returns: {"--OOOO-O", "-OO-O-OO", "-----OO-", "--------", "-----O--", "------O-", "OOOO----", "OOOOOO--" }

  88. {"--OO----", "---O----", "---OO---", "O----O--", "-O------", "OO-O--O-", "OOO-OO-O", "OO------"}

    Returns: {"--OO---O", "---O-OOO", "---OO-OO", "O--O-OO-", "-O------", "OO-O--O-", "OOO-OO-O", "OO------" }

  89. {"OOOO-O--", "OO-O--O-", "O-O-OOO-", "O-OO---O", "O---O---", "------O-", "--------", "-O------"}

    Returns: {"OOOO-O--", "OO-O--O-", "O-O-OOO-", "O-OO---O", "O---O---", "----OOOO", "---OOOOO", "-OO-OOO-" }

  90. {"O-OOOOOO", "---OOOOO", "O-OOOOO-", "--O----O", "--OOOOOO", "--O--OOO", "-------O", "--O---O-"}

    Returns: {"O-OOOOOO", "---OOOOO", "O-OOOOO-", "O-O----O", "O-OOOOOO", "OOOO-OOO", "OOOO---O", "OOOOO-O-" }

  91. {"--OO----", "-OOOO---", "-O-O-O--", "O-------", "-OO-----", "--OO----", "----O-O-", "--O-----"}

    Returns: {"--OO----", "-OOOO---", "-O-O-O--", "O-------", "-OO----O", "--OO--OO", "----O-OO", "--O---O-" }

  92. {"O----O--", "O---O---", "---OOO-O", "-O-OOO--", "-O------", "OOOOO--O", "OOO--O--", "OOOOOO--"}

    Returns: {"O---OOOO", "O--OOO-O", "---OOOOO", "-O-OOOOO", "-O------", "OOOOO--O", "OOO--O--", "OOOOOO--" }

  93. {"-OO-OOOO", "----OOO-", "-OOOOOO-", "----OOOO", "--O-----", "-O----O-", "----O---", "--O-O---"}

    Returns: {"-OO-OOOO", "----OOO-", "-OOOOOO-", "----OOOO", "--O-----", "OOO-O-O-", "OOOOOOO-", "OOO-O---" }

  94. {"----OOOO", "--O--OOO", "-O--OOOO", "-----O-O", "-----OOO", "---O-OO-", "-O---OOO", "-----O--"}

    Returns: {"----OOOO", "OOO--OOO", "OO--OOOO", "OO---O-O", "OOO--OOO", "OOOO-OO-", "OOOO-OOO", "OO---O--" }

  95. {"-----O--", "-----OO-", "----O-OO", "--O-O-OO", "-OOOOOOO", "OOOOOOO-", "--O--O-O", "OO--OOOO"}

    Returns: {"OOO--O--", "OOOOOOO-", "OOO-O-OO", "--O-O-OO", "-OOOOOOO", "OOOOOOO-", "--O--O-O", "OO--OOOO" }

  96. {"O-O-OO-O", "-O---O--", "-O---O--", "--------", "------OO", "--------", "--------", "--------"}

    Returns: {"O-O-OO-O", "-O---O--", "-O---O--", "--------", "------OO", "--------", "OO-OOOOO", "OO------" }

  97. {"--------", "-OO---O-", "--O---O-", "OOOO----", "OOOO---O", "O-OOOO--", "OOOO-O--", "-OOOOOO-"}

    Returns: {"---OOOOO", "-OO-OOOO", "--O-OOOO", "OOOOOOO-", "OOOO---O", "O-OOOO--", "OOOO-O--", "-OOOOOO-" }

  98. {"--------", "---O-O--", "--O-----", "------O-", "-----O-O", "--O----O", "-O---O-O", "----O-O-"}

    Returns: {"-O------", "OO-O-O--", "OOO-----", "------O-", "-----O-O", "--O----O", "-O---O-O", "----O-O-" }

  99. {"-----O--", "---O----", "OOOO----", "OOO-----", "-OOOO-O-", "-OOOO--O", "OOOOO---", "OOOOOOO-"}

    Returns: {"--OOOOOO", "---OOOOO", "OOOO-OOO", "OOO--OOO", "-OOOO-O-", "-OOOO--O", "OOOOO---", "OOOOOOO-" }

  100. {"--O---O-", "--O---O-", "--OO-OOO", "---OO--O", "O-O-OOOO", "----OOOO", "---OOOOO", "--O-OO-O"}

    Returns: {"OOO---O-", "OOO---O-", "OOOOOOOO", "OOOOO--O", "OOO-OOOO", "OO--OOOO", "---OOOOO", "--O-OO-O" }

  101. {"-OO-OO--", "-OOOOO-O", "OO-O----", "--OO-O--", "O-O-----", "O-O-----", "---O----", "O---O---"}

    Returns: {"-OO-OO--", "-OOOOO-O", "OO-O----", "--OO-O--", "O-O----O", "O-O---OO", "---O-OOO", "O--OOO-O" }

  102. {"---OOOOO", "---O-OO-", "---O-OOO", "--OOOO--", "O----OOO", "-OO-OO--", "-------O", "--------"}

    Returns: {"---OOOOO", "---O-OO-", "---O-OOO", "O-OOOO--", "OO---OOO", "OOOOOO--", "OOOOO--O", "OO------" }

  103. {"--------", "O--O----", "-O-O----", "OOOOOOO-", "OOOOOOOO", "OOOO----", "OOOOO-O-", "-OOOO---"}

    Returns: {"----OOOO", "O--OOOOO", "-O-O-OOO", "OOOOOOOO", "OOOOOOOO", "OOOOO---", "OOOOO-O-", "-OOOO---" }

  104. {"OOOOOOO-", "OOOOO-O-", "OOO-OOO-", "OOOO-O--", "O-O-OO--", "-OO-----", "O-O-----", "--------"}

    Returns: {"OOOOOOO-", "OOOOO-O-", "OOO-OOO-", "OOOO-OOO", "O-O-OOOO", "-OOOOOOO", "O-OOOOOO", "-OOO-OOO" }

  105. {"--O---O-", "-----OO-", "OO----O-", "OO-O---O", "-----O-O", "-----O-O", "---O----", "--------"}

    Returns: {"--O---O-", "-----OO-", "OO----O-", "OO-O---O", "-----O-O", "-----O-O", "-O-OO---", "OO------" }

  106. {"--------", "--------", "--------", "--------", "--------", "--O-----", "O-------", "---O----"}

    Returns: {"--------", "----OO-O", "--------", "--------", "--------", "--O-----", "O-------", "---O----" }

  107. {"OOOO-O--", "O-OOOO--", "OOO--OOO", "O-OOOO--", "-OO-O--O", "--OO--O-", "O-OOO---", "--------"}

    Returns: {"OOOO-O--", "O-OOOO--", "OOO--OOO", "O-OOOO--", "-OO-O-OO", "--OO-OOO", "O-OOOOOO", "--O-OOO-" }

  108. {"-OOOOOOO", "O---O-OO", "-OO-OOOO", "-O--O-OO", "O--OO-OO", "----OO-O", "-----OO-", "--------"}

    Returns: {"-OOOOOOO", "O---O-OO", "-OO-OOOO", "-O--O-OO", "OOOOO-OO", "OOOOOO-O", "OOOOOOO-", "OOO-O---" }


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: