Statistics

Problem Statement for "ReadingBooks"

Problem Statement

There are some books, each consisting of exactly three parts: introduction, story and edification. There is a reader who goes through the books and reads various parts. Each time he finishes reading a part, he adds the name of the part to the end of a list. He may read zero or more parts from each book, and he can read them in any order, but he cannot read each part more than once. Whenever he starts reading a new book, he can no longer go back and read any parts of books he has looked at previously.

You are given a String[] readParts containing the list created by the reader. Each element of readParts is "introduction", "story" or "edification" (quotes for clarity). Return the maximum possible number of books for which the reader has read all three parts.

Definition

Class:
ReadingBooks
Method:
countBooks
Parameters:
String[]
Returns:
int
Method signature:
int countBooks(String[] readParts)
(be sure your method is public)

Constraints

  • readParts will contain between 1 and 50 elements, inclusive.
  • Each element of readParts will be "introduction", "story" or "edification" (quotes for clarity).

Examples

  1. {"edification", "story", "introduction", "edification", "introduction", "story", "edification"}

    Returns: 2

  2. {"introduction", "story", "introduction", "edification"}

    Returns: 1

    It is possible that the reader has read the introduction from the first book and all 3 parts from the second one. Of course, it is also possible that he has read one part from four different books, but we are interested in the maximal number of books for which all 3 parts have been read.

  3. {"story", "edification", "introduction", "story", "edification", "introduction", "introduction", "story", "edification", "introduction"}

    Returns: 3

  4. {"introduction", "introduction", "introduction", "story", "story", "story", "edification", "edification", "edification"}

    Returns: 0

  5. {"introduction", "story", "edification", "introduction", "story", "edification"}

    Returns: 2

    Two books have been read in their entirety.

  6. {"introduction", "story", "edification", "introduction"}

    Returns: 1

  7. {"introduction", "story", "edification", "introduction", "story", "edification", "introduction", "story", "edification", "introduction", "story", "edification", "introduction", "story", "edification", "introduction", "story", "edification"}

    Returns: 6

  8. {"story", "story", "introduction", "edification", "story", "introduction", "introduction", "edification", "edification", "edification", "story", "story", "introduction", "introduction", "edification", "edification", "story", "introduction", "edification", "story", "edification", "edification", "edification", "introduction", "introduction", "introduction", "edification", "story"}

    Returns: 3

  9. {"introduction", "introduction", "edification", "edification", "story", "introduction", "introduction", "edification", "edification", "story", "introduction", "edification", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "introduction", "introduction", "edification", "story", "story", "introduction", "introduction"}

    Returns: 6

  10. {"story", "story", "story", "introduction", "introduction", "introduction", "edification", "story", "edification", "introduction", "story", "story", "introduction", "edification", "edification", "introduction", "edification", "introduction", "edification", "story", "story", "introduction", "edification", "introduction", "story", "edification", "introduction", "story", "story", "introduction", "edification"}

    Returns: 7

  11. {"edification", "edification", "introduction", "introduction", "story", "edification", "introduction", "introduction", "story", "introduction", "edification", "edification", "story", "edification", "introduction", "introduction", "edification", "edification", "story", "introduction", "edification", "introduction", "story", "introduction", "story", "introduction", "edification", "story", "introduction", "edification", "story", "edification", "introduction", "story"}

    Returns: 8

  12. {"edification", "edification", "introduction", "introduction", "story", "introduction", "edification", "edification", "introduction", "story", "introduction", "introduction", "story", "story", "edification", "introduction", "story", "edification", "introduction", "story", "edification", "edification", "introduction", "story", "introduction", "edification", "edification", "introduction", "story"}

    Returns: 6

  13. {"story", "edification", "introduction", "edification", "edification", "edification", "story", "edification", "story", "edification", "edification", "story", "introduction", "story", "introduction"}

    Returns: 2

  14. {"introduction", "story", "story", "edification", "introduction", "story", "introduction", "story", "introduction", "story", "introduction", "introduction", "edification", "edification", "story", "introduction", "story", "introduction", "story", "introduction", "edification", "introduction", "edification", "story", "story", "introduction", "edification", "introduction", "edification", "introduction", "story", "introduction", "edification", "edification", "story", "story", "introduction", "story", "edification", "story", "story", "edification", "story"}

    Returns: 7

  15. {"edification", "introduction", "edification", "story", "edification", "edification", "story", "edification", "introduction", "edification", "story"}

    Returns: 2

  16. {"story", "edification", "introduction", "introduction", "introduction", "edification", "edification", "story", "story", "introduction", "edification", "introduction", "edification", "story", "introduction", "story", "introduction", "introduction", "story", "story", "edification", "story", "edification", "edification", "introduction", "story", "introduction", "story", "edification"}

    Returns: 5

  17. {"introduction", "edification", "introduction", "story", "introduction", "edification", "edification", "story", "introduction", "story", "introduction", "edification", "edification", "introduction", "edification", "edification"}

    Returns: 3

  18. {"introduction", "introduction", "introduction", "edification", "story", "edification", "introduction", "introduction", "introduction", "edification", "introduction", "edification", "edification", "introduction", "story", "introduction", "story", "introduction", "introduction", "story", "introduction", "story", "edification", "introduction", "story", "edification", "story", "edification", "story", "edification", "introduction", "introduction", "story", "story", "introduction"}

    Returns: 5

  19. {"introduction", "story", "introduction", "edification", "story", "introduction"}

    Returns: 1

  20. {"edification", "story", "introduction", "introduction", "introduction", "story", "introduction", "story", "story", "story", "story", "introduction", "story", "introduction", "introduction", "story", "edification", "story", "edification", "story", "introduction", "introduction", "story", "story", "introduction", "introduction", "story", "introduction", "story", "introduction", "introduction", "introduction", "introduction", "story", "edification", "introduction", "story", "story", "introduction", "introduction", "edification", "edification", "introduction", "introduction", "story", "edification", "edification", "edification", "introduction", "edification"}

    Returns: 5

  21. {"introduction", "story", "introduction", "story", "introduction", "edification", "story", "introduction", "story", "story", "edification", "story", "story", "introduction", "introduction", "introduction", "introduction", "edification", "story", "story", "story", "story", "story", "story", "story", "edification", "story", "story", "introduction", "edification", "story", "story", "edification", "edification", "edification", "introduction", "edification", "edification", "story", "story", "edification", "story", "edification", "edification"}

    Returns: 3

  22. {"edification", "story", "introduction", "story", "edification", "story", "story", "story", "edification", "edification", "edification", "edification", "edification", "edification", "edification", "introduction", "story", "edification", "edification", "edification", "story", "introduction", "story", "story", "story", "introduction", "introduction", "introduction"}

    Returns: 3

  23. {"introduction", "introduction", "story", "introduction", "introduction", "introduction", "introduction", "story", "introduction", "story", "story", "edification", "edification", "story", "edification", "story", "edification", "introduction", "edification", "edification", "story", "edification", "introduction", "edification", "edification", "introduction", "introduction", "edification", "introduction", "introduction", "edification", "introduction", "edification", "introduction", "story", "introduction", "story", "introduction", "story", "story", "introduction", "story", "story", "edification", "edification", "edification", "edification", "introduction", "introduction", "introduction"}

    Returns: 3

  24. {"introduction", "edification", "edification", "introduction", "introduction", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "edification", "edification", "story", "edification", "story", "story", "story", "story", "introduction", "edification", "introduction", "edification", "introduction", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "story", "story", "story", "introduction", "introduction", "edification", "story", "story", "edification", "story", "edification", "introduction", "edification", "story", "story", "introduction", "edification", "story"}

    Returns: 6

  25. {"introduction", "story", "introduction", "edification", "introduction", "story", "introduction", "story", "introduction", "introduction", "edification", "story", "introduction", "introduction", "introduction", "story", "story", "introduction", "introduction", "introduction", "story", "edification", "introduction", "edification", "story", "edification", "introduction", "story", "introduction", "edification", "edification", "edification", "introduction", "story", "edification", "edification", "introduction", "introduction", "introduction", "story", "story", "story", "edification", "edification", "story", "story", "story", "story", "introduction", "introduction"}

    Returns: 6

  26. {"story", "story", "introduction", "story", "story", "introduction", "edification", "edification", "story", "introduction", "story", "story", "story", "introduction", "story", "introduction", "edification", "introduction", "introduction", "edification", "introduction", "introduction", "introduction", "story", "story", "introduction", "edification", "story", "edification", "story", "story", "introduction", "introduction", "edification", "story", "introduction", "introduction", "edification", "edification", "story", "introduction", "introduction", "story", "edification", "story", "edification", "edification", "story", "edification", "edification"}

    Returns: 7

  27. {"introduction", "introduction", "introduction", "story", "introduction", "edification", "edification", "story", "introduction", "introduction", "edification", "story", "edification", "introduction", "story", "story", "edification", "edification", "story", "edification", "story", "story", "introduction", "edification", "introduction", "story", "edification", "introduction", "introduction", "introduction", "story", "story", "story", "story", "edification", "introduction", "story", "introduction", "edification", "edification", "story", "edification", "edification", "story", "story", "introduction", "edification", "introduction", "introduction", "introduction"}

    Returns: 9

  28. {"story", "story", "edification", "story", "story", "edification", "edification", "edification", "story", "introduction", "introduction", "edification", "story", "edification", "story", "edification", "story", "introduction", "story", "introduction", "introduction", "story", "introduction", "story", "story", "edification", "edification", "story", "edification", "story", "introduction", "edification", "introduction", "story", "introduction", "edification", "story", "edification", "story", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "introduction"}

    Returns: 7

  29. {"story", "edification", "edification", "story", "story", "introduction", "edification", "introduction", "edification", "story", "story", "edification", "introduction", "introduction", "edification", "edification", "story", "edification", "introduction", "introduction", "story", "edification", "introduction", "story", "edification", "story", "story", "story", "story", "introduction", "introduction", "story", "introduction", "edification", "story", "edification", "introduction", "story", "introduction", "story", "edification", "story", "edification"}

    Returns: 9

  30. {"introduction", "story", "story", "introduction", "edification", "story", "introduction", "story"}

    Returns: 1

  31. {"story", "story", "edification", "introduction", "edification", "introduction", "story", "introduction", "story", "edification", "introduction", "introduction", "introduction", "story", "edification", "introduction", "introduction", "edification", "introduction", "edification", "introduction", "introduction", "introduction", "story", "edification", "edification", "edification", "story", "edification", "introduction", "story", "introduction", "story", "introduction", "edification", "story", "story", "story", "story", "introduction", "story", "edification", "edification", "edification"}

    Returns: 8

  32. {"story", "introduction", "introduction", "story", "edification", "story", "edification", "edification", "edification", "story", "edification", "introduction", "story", "edification", "edification", "edification", "introduction", "introduction", "story", "introduction", "edification", "story", "introduction", "story", "introduction", "story", "edification", "story", "introduction", "introduction", "introduction", "story", "introduction", "edification", "edification", "story", "edification", "edification", "story", "story", "edification", "edification", "edification", "edification", "introduction", "story", "story", "introduction", "introduction"}

    Returns: 6

  33. {"edification", "edification", "story", "story", "story", "story", "edification", "edification", "introduction", "edification", "edification", "introduction", "introduction"}

    Returns: 0

  34. {"story", "edification", "edification", "story", "introduction", "introduction", "introduction", "edification", "story", "edification", "story", "introduction", "introduction", "introduction", "edification", "introduction", "introduction", "edification", "story", "story", "story", "story", "introduction", "story", "edification", "edification", "edification", "introduction", "edification"}

    Returns: 5

  35. {"story", "story", "introduction", "story", "story", "story", "story", "edification", "story", "introduction", "story", "introduction", "edification", "story", "introduction", "introduction", "edification", "introduction", "story", "introduction", "edification", "story", "edification"}

    Returns: 4

  36. {"introduction", "story", "introduction", "story", "story", "story", "edification", "introduction", "edification", "edification", "introduction", "story", "edification", "introduction", "edification", "story", "edification", "story", "story", "introduction", "introduction", "introduction", "story", "story", "introduction", "introduction", "introduction", "edification", "edification", "introduction", "story", "edification", "story", "story", "introduction", "edification", "edification", "introduction", "story", "introduction"}

    Returns: 6

  37. {"introduction", "edification", "edification", "story", "introduction", "introduction", "edification", "story", "edification", "edification", "introduction", "story", "story", "introduction", "introduction", "story", "story", "story", "story", "story", "edification", "story"}

    Returns: 3

  38. {"edification", "story", "introduction", "story", "edification", "introduction", "story", "introduction", "edification", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story", "introduction", "edification", "story"}

    Returns: 16

  39. {"introduction", "story", "introduction", "edification", "story", "story", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "introduction", "story", "edification", "edification", "story", "introduction", "edification", "story", "story", "edification", "introduction", "story"}

    Returns: 5

  40. {"story"}

    Returns: 0

  41. {"introduction"}

    Returns: 0

  42. {"edification"}

    Returns: 0

  43. {"story","edification"}

    Returns: 0

  44. {"introduction","edification"}

    Returns: 0

  45. {"edification","edification"}

    Returns: 0

  46. {"introduction","introduction","introduction"}

    Returns: 0

  47. {"introduction","edification","edification"}

    Returns: 0

  48. {"story","edification","introduction"}

    Returns: 1

  49. {"introduction", "story", "story", "story", "edification", "introduction", "story", "story", "story", "edification", "edification", "introduction", "edification", "edification", "introduction", "introduction", "story", "edification", "introduction", "story", "introduction", "story", "story", "edification", "edification", "story", "edification", "introduction", "introduction", "edification", "edification", "introduction", "story", "introduction", "story", "edification", "story", "edification", "introduction", "edification", "story", "edification", "edification", "story", "introduction" }

    Returns: 7

  50. {"introduction", "story", "introduction", "edification", "story", "story", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "introduction", "story", "edification", "edification", "story", "introduction", "edification", "story", "story", "edification", "introduction", "story" }

    Returns: 5

  51. {"introduction" }

    Returns: 0

  52. {"story", "edification", "introduction" }

    Returns: 1

  53. {"story", "story", "story" }

    Returns: 0

  54. {"story", "introduction", "edification" }

    Returns: 1

  55. {"story", "story", "story", "edification", "edification", "edification", "introduction", "introduction", "introduction" }

    Returns: 0

  56. {"edification", "story", "introduction" }

    Returns: 1

  57. {"introduction", "story", "introduction", "edification", "story", "introduction" }

    Returns: 1

  58. {"introduction", "introduction", "story", "story", "edification", "edification" }

    Returns: 0

  59. {"story", "introduction", "introduction", "edification" }

    Returns: 0

  60. {"introduction", "story", "introduction", "edification" }

    Returns: 1

  61. {"story", "edification", "introduction", "story" }

    Returns: 1

  62. {"introduction", "story", "introduction", "edification", "story", "story", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "introduction", "story", "edification", "edification", "story", "introduction", "edification", "story", "story", "edification", "introduction", "story", "story", "introduction", "story", "story", "story", "edification", "introduction", "story", "story", "introduction", "introduction", "edification" }

    Returns: 6

  63. {"introduction", "story", "introduction", "edification", "story", "story", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "introduction", "story", "edification", "edification", "story", "introduction", "edification", "story", "story", "edification", "introduction", "story", "introduction", "introduction", "introduction", "introduction", "story", "story", "story", "edification", "edification", "edification", "edification" }

    Returns: 5

  64. {"introduction", "story", "edification", "edification" }

    Returns: 1

  65. {"story", "story", "story", "story" }

    Returns: 0

  66. {"introduction", "story", "edification", "edification", "story", "introduction" }

    Returns: 2

  67. {"story", "introduction", "introduction", "edification", "introduction", "introduction", "story", "story", "story", "edification", "story", "introduction", "introduction", "edification", "story", "edification", "introduction", "introduction", "story", "story", "introduction", "story", "story", "edification", "story", "edification", "introduction", "story", "edification", "edification", "story", "introduction", "edification" }

    Returns: 4

  68. {"introduction", "introduction", "edification", "edification", "story", "story" }

    Returns: 0

  69. {"introduction", "story", "introduction", "edification", "story", "story", "edification", "edification", "edification", "introduction", "introduction", "edification", "story", "introduction", "story", "edification", "edification", "story", "introduction", "edification", "story", "story", "edification", "introduction", "story", "story", "edification", "introduction", "edification", "edification", "edification", "edification", "introduction", "introduction", "introduction", "story", "story", "story", "story", "story", "introduction", "edification", "story", "edification", "introduction", "introduction", "introduction" }

    Returns: 8

  70. {"introduction", "introduction", "introduction", "introduction", "introduction", "introduction", "story", "story", "edification", "edification" }

    Returns: 0

  71. {"introduction", "introduction", "introduction", "story", "story", "story", "edification", "edification", "edification" }

    Returns: 0

  72. {"introduction", "edification" }

    Returns: 0

  73. {"introduction", "story", "story", "edification", "edification" }

    Returns: 0

  74. {"story", "introduction", "introduction", "edification", "introduction", "introduction", "story", "story", "story", "edification", "story", "introduction", "introduction", "edification", "story", "edification", "introduction", "introduction", "story", "story", "introduction", "story", "story", "edification", "story", "edification", "introduction", "story", "edification", "edification", "story", "introduction", "edification", "introduction", "story", "edification", "story" }

    Returns: 5

  75. {"introduction", "introduction", "story", "story", "edification" }

    Returns: 0

  76. {"story" }

    Returns: 0

  77. {"introduction", "story", "introduction", "edification", "introduction", "story", "introduction", "edification", "introduction", "story", "introduction", "edification", "introduction" }

    Returns: 3

  78. {"introduction", "introduction", "story", "introduction", "edification" }

    Returns: 1

  79. {"introduction", "edification", "introduction", "edification", "story", "introduction", "story", "edification", "introduction", "edification", "edification", "story", "story", "story", "story", "introduction", "story", "story", "introduction", "edification", "edification", "introduction", "edification", "edification", "edification", "story", "introduction", "edification", "edification", "edification", "edification", "edification", "edification", "story", "story", "edification", "story", "introduction", "edification", "edification", "edification", "story", "introduction", "edification", "story", "edification", "story", "introduction", "story", "story" }

    Returns: 7

  80. {"introduction", "story", "edification", "introduction", "story", "edification" }

    Returns: 2

  81. {"introduction", "story", "story", "edification" }

    Returns: 0

  82. {"introduction", "story", "edification", "edification", "edification", "introduction", "story" }

    Returns: 2

  83. {"introduction", "story", "edification", "story" }

    Returns: 1

  84. {"story", "story" }

    Returns: 0

  85. {"edification", "introduction", "story", "introduction" }

    Returns: 1

  86. {"introduction", "story", "edification", "introduction", "edification", "introduction", "edification", "story" }

    Returns: 2


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: