Statistics

Problem Statement for "EightRooks"

Problem Statement

Cat Snuke is playing a puzzle called Eight Rooks Puzzle.

In this puzzle, he must put exactly eight rooks onto an 8x8 chessboard. No two rooks must be in the same row, and no two rooks must be in the same column.

You are given a String[] board. The j-th character of the i-th element of board is either 'R' or '.'. If this is 'R', the cell in row i, column j contains a rook. Otherwise the cell doesn't contain a rook.

Determine whether Snuke solved the puzzle correctly. If he solved the puzzle correctly, return "Correct". Otherwise return "Incorrect".

Definition

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

Constraints

  • board will contain exactly 8 elements.
  • Each element of board will contain exactly 8 characters.
  • Each character in board will be either 'R' or '.'.

Examples

  1. {"R.......", ".R......", "..R.....", "...R....", "....R...", ".....R..", "......R.", ".......R"}

    Returns: "Correct"

  2. {"........", "....R...", "........", ".R......", "........", "........", "..R.....", "........"}

    Returns: "Incorrect"

    The number of rooks is not eight.

  3. {"......R.", "....R...", "...R....", ".R......", "R.......", ".....R..", "..R.....", ".......R"}

    Returns: "Correct"

  4. {"......R.", "....R...", "...R....", ".R......", "R.......", ".......R", "..R.....", ".......R"}

    Returns: "Incorrect"

    The rightmost column contains two rooks.

  5. {"........", "........", "........", "........", "........", "........", "........", "........"}

    Returns: "Incorrect"

  6. {".....R..", ".R......", "..R.....", "R.......", "....R...", "......R.", ".......R", "...R...."}

    Returns: "Correct"

  7. {"..R.....", "....R...", ".....R..", ".R......", "R.......", "...R....", "......R.", ".......R"}

    Returns: "Correct"

  8. {"..R.....", "...R....", "......R.", "R.......", ".R......", ".....R..", ".......R", "....R..."}

    Returns: "Correct"

  9. {".R......", "......R.", ".......R", ".....R..", "R.......", "..R.....", "...R....", "....R..."}

    Returns: "Correct"

  10. {"....R...", "..R.....", ".R......", "...R....", "R.......", ".....R..", ".......R", "......R."}

    Returns: "Correct"

  11. {".R......", "......R.", "..R.....", ".....R..", "R.......", ".......R", "...R....", "....R..."}

    Returns: "Correct"

  12. {".....R..", "......R.", ".R......", "R.......", "..R.....", ".......R", "....R...", "...R...."}

    Returns: "Correct"

  13. {"...R....", "......R.", ".R......", ".....R..", "..R.....", "....R...", ".......R", "R......."}

    Returns: "Correct"

  14. {"......R.", ".......R", "...R....", "R.......", "....R...", "..R.....", ".R......", ".....R.."}

    Returns: "Correct"

  15. {"...R....", "R.......", ".......R", ".R......", ".....R..", "......R.", "..R.....", "....R..."}

    Returns: "Correct"

  16. {"..R.....", ".......R", "......R.", "....R...", "...R....", "R.......", ".....R..", ".R......"}

    Returns: "Correct"

  17. {".......R", "...R....", "R.......", ".R......", "....R...", "......R.", "..R.....", ".....R.."}

    Returns: "Correct"

  18. {"......R.", "...R....", "..R.....", ".....R..", ".......R", ".R......", "R.......", "....R..."}

    Returns: "Correct"

  19. {".....R..", "..R.....", ".......R", "....R...", "R.......", "...R....", "......R.", ".R......"}

    Returns: "Correct"

  20. {".......R", "...R....", ".R......", ".....R..", "....R...", "..R.....", "......R.", "R......."}

    Returns: "Correct"

  21. {"......R.", ".....R..", "....R...", "..R.....", ".......R", "R.......", "...R....", ".R......"}

    Returns: "Correct"

  22. {"R.......", "..R.....", "......R.", ".....R..", ".R......", ".......R", "...R....", "....R..."}

    Returns: "Correct"

  23. {"R.......", "...R....", "....R...", "..R.....", "......R.", ".....R..", ".R......", ".......R"}

    Returns: "Correct"

  24. {".......R", "......R.", "....R...", "R.......", "..R.....", ".....R..", ".R......", "...R...."}

    Returns: "Correct"

  25. {".R......", "....R...", ".......R", "..R.....", ".....R..", "R.......", "......R.", "...R...."}

    Returns: "Correct"

  26. {".R......", "........", "........", "........", "........", "........", "........", "........"}

    Returns: "Incorrect"

  27. {"........", "........", "........", "........", "R.......", "........", ".......R", "........"}

    Returns: "Incorrect"

  28. {"........", "........", "..R.....", "........", "........", "...R....", ".......R", "R......."}

    Returns: "Incorrect"

  29. {"...RR.R.", "........", "........", "........", "R.......", "..R.R...", "......R.", "....R..."}

    Returns: "Incorrect"

  30. {"........", ".....R.R", ".R...R..", "RRR.....", ".R.R....", "...R....", ".....R.R", "...RRRR."}

    Returns: "Incorrect"

  31. {".R.RRR.R", ".....R.R", "R.R..R.R", "...RRR.R", "R..R.RR.", "R.R...R.", ".R..RR.R", "RRRR.R.R"}

    Returns: "Incorrect"

  32. {"RRRRRRRR", "RRRRRRRR", "RRRRRRRR", "RRRRRRRR", "RRRRRRRR", "RRRRRRRR", "RRRRRRRR", "RRRRRRRR"}

    Returns: "Incorrect"

  33. {"..R.....", "...RR...", ".R......", ".....RR.", ".R......", "........", "........", "....R..."}

    Returns: "Incorrect"

  34. {".RR....R", "..R...R.", "........", "........", "........", ".......R", "RR......", "........"}

    Returns: "Incorrect"

  35. {"..R.....", "R.....R.", "....RR..", "........", "........", ".R....R.", ".......R", "........"}

    Returns: "Incorrect"

  36. {"......R.", ".......R", "..R.....", ".RR....R", "..R.....", "........", "........", ".R......"}

    Returns: "Incorrect"

  37. {"......R.", "R.......", "R...R...", "........", "...R....", "......R.", "..R.....", "....R..."}

    Returns: "Incorrect"

  38. {"........", ".....R..", "....R...", ".RR.RR..", "........", "..R....R", "........", "........"}

    Returns: "Incorrect"

  39. {"...R.R..", "........", "........", "..R.....", "........", ".......R", "R.R.R...", ".....R.."}

    Returns: "Incorrect"

  40. {"..R.....", "....R..R", "........", ".....R.R", "........", "........", "RR...R..", "........"}

    Returns: "Incorrect"

  41. {"R.......", ".......R", "....R...", ".......R", ".R...RR.", "......R.", "........", "........"}

    Returns: "Incorrect"

  42. {"R.......", "......RR", "..R....R", "........", ".....R..", "R.......", "........", "......R."}

    Returns: "Incorrect"

  43. {"........", "..R.....", "....R..R", ".R......", "........", "........", "....RRR.", "......R."}

    Returns: "Incorrect"

  44. {"R.R..R..", "R...R...", "........", "........", "R.......", "....R.R.", "........", "........"}

    Returns: "Incorrect"

  45. {"R..R....", "........", "........", "..R.....", "......R.", "........", ".....R..", "..R.RR.."}

    Returns: "Incorrect"

  46. {"........", "......R.", "RRR.....", "........", "........", ".......R", "R.......", "..R.R..."}

    Returns: "Incorrect"

  47. {".....R.R", ".....RRR", ".......R", "....R...", "........", "........", "........", ".R......"}

    Returns: "Incorrect"

  48. {"...R....", ".....R..", ".....R..", ".R......", "......R.", "....RR..", "........", "...R...."}

    Returns: "Incorrect"

  49. {"........", "R.R.....", ".R..R...", "....R...", "......R.", ".....RR.", "........", "........"}

    Returns: "Incorrect"

  50. {".R......", "..R...RR", "...R....", "........", ".R......", ".......R", "........", "...R...."}

    Returns: "Incorrect"

  51. {".....R.R", "........", "........", ".....R..", "...R..R.", "........", ".....R.R", "....R..."}

    Returns: "Incorrect"

  52. {"....R...", "..R.....", "..R...R.", "...R....", ".....R..", ".....RR.", "........", "........"}

    Returns: "Incorrect"

  53. {"R.......", ".R......", "..R.....", "...R....", "....R...", ".....R..", "......R.", ".......R" }

    Returns: "Correct"

  54. {"........", "....R...", "........", ".R......", "........", "........", "..R.....", "........" }

    Returns: "Incorrect"

  55. {"R.......", ".RR.....", "........", "...R....", "....R...", ".....R..", "......R.", ".......R" }

    Returns: "Incorrect"

  56. {"RRRRRRRR", "........", "........", "........", "........", "........", "........", "........" }

    Returns: "Incorrect"

  57. {".R......", "R.......", "..R.....", "...R....", "....R...", ".....R..", "......R.", ".......R" }

    Returns: "Correct"

  58. {"R.......", "R.......", "R.......", "R.......", "R.......", "R.......", "R.......", "R......." }

    Returns: "Incorrect"

  59. {"R.......", ".R......", "..R.....", "...R....", "....R...", ".....R..", "......RR", ".......R" }

    Returns: "Incorrect"

  60. {"R......R", ".R......", "..R.....", "...R....", "....R...", ".....R..", "......R.", ".......R" }

    Returns: "Incorrect"

  61. {"RR......", ".R......", "..R.....", "...R....", "....R...", ".....R..", "......R.", ".......R" }

    Returns: "Incorrect"

  62. {"........", "........", "........", "........", "........", "........", "........", "........" }

    Returns: "Incorrect"

  63. {"R.......", ".R......", ".RR.....", "...R....", "....R...", ".....R..", "......R.", ".......R" }

    Returns: "Incorrect"

  64. {"RR......", "..R.....", "...R....", "....R...", ".....R..", "......R.", ".......R", "........" }

    Returns: "Incorrect"

  65. {"RR......", "........", "..R.....", "...R....", "....R...", ".....R..", "......R.", ".......R" }

    Returns: "Incorrect"


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: