Statistics

Problem Statement for "BoxesArrangement"

Problem Statement

Several boxes are placed in a row. Each box is one of three colors. We want to rearrange these boxes in a such way that no three consecutive boxes are of the same color. This process should affect the fewest boxes possible. More formally, we want to achieve the desired configuration by swapping pairs of boxes, and we want to maximize the number of boxes that are never moved.

You will be given a String boxes which describes the colors of the boxes. Colors are given as characters 'A', 'B' and 'C' respectively. Rearrange the boxes as described above and return the maximum possible number of boxes that are never moved. Return -1 if it is not possible to achieve the desired configuration.

Definition

Class:
BoxesArrangement
Method:
maxUntouched
Parameters:
String
Returns:
int
Method signature:
int maxUntouched(String boxes)
(be sure your method is public)

Constraints

  • boxes will contain between 1 and 50 characters, inclusive.
  • boxes will consist of characters 'A', 'B' and 'C' only.

Examples

  1. "AAABBBCCC"

    Returns: 6

    The boxes could be rearranged into "ABABCBCAC".

  2. "AAAAAAAACBB"

    Returns: 7

    The best rearangement is "AABAABAACAA".

  3. "CCCCCB"

    Returns: -1

  4. "BAACAABAACAAA"

    Returns: 5

  5. "BCBBBACBBBBBBACCBB"

    Returns: 12

  6. "CBBABA"

    Returns: 6

  7. "BBABABBBBB"

    Returns: -1

  8. "CBB"

    Returns: 3

  9. "CBBABBBBABBBBB"

    Returns: -1

  10. "BABB"

    Returns: 4

  11. "BBABBBBBCCBCBBBBCA"

    Returns: 14

  12. "BCCBBABB"

    Returns: 8

  13. "BBBBBBBBBBBBCBCBCBBB"

    Returns: -1

  14. "CBBBA"

    Returns: 3

  15. "BBBBCCBCBBBBBBB"

    Returns: -1

  16. "BCBBBBBBBCAABBBBB"

    Returns: -1

  17. "BBAB"

    Returns: 4

  18. "BCBCCBBBBBCBCBC"

    Returns: 13

  19. "BCBCBBACBBBBBBAABBB"

    Returns: 11

  20. "BABCBCCCABBCB"

    Returns: 11

  21. "BAABBBCCABBBCBCABBCB"

    Returns: 16

  22. "BABBBACBBCB"

    Returns: 9

  23. "CBBB"

    Returns: 2

  24. "ABBBBBBBBACBBBB"

    Returns: -1

  25. "BBBBBBBBBBBBBCCCCCCCCCCCCCCBBBBBBBBBBAAAAAAAAAAAAA"

    Returns: 35

  26. "AAAAAAAAAAAAAAACCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: 30

  27. "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAABBBB"

    Returns: -1

  28. "AAAAAACCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: 32

  29. "AAAAAAAAAAAAAACCCCCAAAAAAAAAAAAAAAAAAAABBBBBBBBBBA"

    Returns: -1

  30. "AAAAAAAACCCCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAABBBBBB"

    Returns: 35

  31. "CCCCCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBCC"

    Returns: 28

  32. "BBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAAAAAA"

    Returns: -1

  33. "BBBBBBBBBBCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBCCCCCCC"

    Returns: 34

  34. "CCCCCCCCBBBBBBBBBBBCCCCCCCCCCCCCCCCCBBBBBBBAAAAAAA"

    Returns: 36

  35. "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAABBBBBB"

    Returns: -1

  36. "CCCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBCCCCCCCCCC"

    Returns: 30

  37. "BBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAABBBBBBBBBCCCCCC"

    Returns: 34

  38. "BBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"

    Returns: 28

  39. "AAAACCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"

    Returns: -1

  40. "AAABBBBBBBBBBBBBBBCCCCCCCCCCCAAAAAAAAABBBBBBBBBBBB"

    Returns: 32

  41. "AAAAAAAAAAAAACCCCCCCCCCAAAAAAAAAAAAAAAACCCCCCCCAAA"

    Returns: 30

  42. "AAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBAAACCCCCCCCCCCCC"

    Returns: 34

  43. "AAAAAAAAAAAAAACCCCCCCCBBBBBBBBCCCCCCCCCCCCCCCCCCCC"

    Returns: 34

  44. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCCCCCCCCBB"

    Returns: -1

  45. "CCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAABBBBBCCCCCCCC"

    Returns: 26

  46. "AAAAAAAAAAAAAAAAAAABBBBBBBBAAAAAAAAABBBBBBBBBCCCCC"

    Returns: 32

  47. "AAAAAAABBBBBBBBCCCAAACCCCCCCCCCCCCCCCCCCCCCCCCCCCC"

    Returns: 30

  48. "AAAAAAAABBBCCCCCCCCCCCCCBBBBBBBBBBCCCCCCCBBBBBBCCC"

    Returns: 35

  49. "BBBBBBBBBBAAAAAAACCCCCCCCCCCCCCAAAAAAAAABBBBBBBCCC"

    Returns: 35

  50. "AAAAABBBBBBAAAAAAAAAAAAABBBCCCCCCCCCCCCCCCCCCCBBBB"

    Returns: 35

  51. "CCCCAAAAAAACCCCCCCCCCBBBBBBBBBBBAAAAAAACCCAAABBBBB"

    Returns: 36

  52. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: -1

  53. "AAAAACCCBBBBBBBBBCCCCCAAAAAAAAAAAAAAAACCCCCCCCAAAA"

    Returns: 36

  54. "CCCCCCCBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: 34

  55. "BBBBBBCCCCCCAAAACBBAAAAAAAAAAAABBCCCCCCCCCCAAAACCC"

    Returns: 36

  56. "CCCCCAAAAABBBBBBBBBBBCCCCCBBCCCCCCCCCCCCCCCCCCCCCA"

    Returns: 32

  57. "CCCCCBCAAAABBBACCCCAAAAAABBBBBABBBBACCAAACCCCCCCBB"

    Returns: 39

  58. "CCCCCBBBCACCCCCCCCCCCAABBBBBBCAAAAAACCCCAAAAAAAABB"

    Returns: 38

  59. "AAAAAACCCCCCCBBBBBBBBBCBBBBBCCCCCAABAACCCAAAAACCCC"

    Returns: 38

  60. "BBBBCCCCCCCCCBBBBBAAACCCCAAACCCBBAAACCCCCCAAAAAACC"

    Returns: 36

  61. "CCCCABBBBBBBBAAAAAACCCCCCCABBBBBBBBBBBBAAAAAAAAAAC"

    Returns: 36

  62. "CBBCCCCCCCBBBBBCCCBCCAAAAAAABBBCCCCCAAAAACCCBBBCCC"

    Returns: 38

  63. "BBBBBBCCCCCCCCCCCAACCCCCAAAAACAABBBBAAAAABBBAABBBC"

    Returns: 39

  64. "BBBBBBCCCCABBBBBCCCCCAAAACCCCCCCCCCBBBBBBBBCBCCCCB"

    Returns: 38

  65. "CCCCCCAAAACCCCBBBCCCCCCCCCCBBBAAAAAAAAAABBBBBAAAAC"

    Returns: 36

  66. "BBBAAAAAAAAAAABBBBABBBBBBBBBCAAAACCCCCBBBBBBBBBAAA"

    Returns: 34

  67. "CCCCCCCBBBBBBBABBAAAAAABBCCCCCAAAAABBBBBBBBAABBBBB"

    Returns: 39

  68. "BCCCCCBBBBAABCCCAAAABBBBCCBBBCCBBBBBBBBBCCCCBBBBBB"

    Returns: 34

  69. "CBBBBBBBBABCAAAABBBCAAAACCCCCCCCCCCCCCCCCBBBBBBBBB"

    Returns: 37

  70. "AAAACCCCCCAAAAACCCCAAACCBBBBAAAAABBBBBBCCCCBBBBBAA"

    Returns: 38

  71. "AAAAAAABBBBBCCCCBBCCCCCAAAAAAAABCCCCCCCCCACCCCCAAA"

    Returns: 38

  72. "CCCCCCCCCBBCBBAAAABBBBBABBBBBCCCCCCCCCAAAAAAAABBBB"

    Returns: 38

  73. "BBBBAAAAAABBBBCCCCCAAAAAAABBBBBBBBBCCCCCCCCAAAAACC"

    Returns: 37

  74. "BBBBBBBBBCCCCCAAAAAAAAAACCCCCBBBACCCBAAAABAAAAAABC"

    Returns: 37

  75. "A"

    Returns: 1

  76. "B"

    Returns: 1

  77. "C"

    Returns: 1

  78. "AA"

    Returns: 2

  79. "AB"

    Returns: 2

  80. "AC"

    Returns: 2

  81. "BA"

    Returns: 2

  82. "BB"

    Returns: 2

  83. "BC"

    Returns: 2

  84. "CA"

    Returns: 2

  85. "CB"

    Returns: 2

  86. "CC"

    Returns: 2

  87. "AAA"

    Returns: -1

  88. "BBB"

    Returns: -1

  89. "CCC"

    Returns: -1

  90. "AAAB"

    Returns: 2

  91. "BBBC"

    Returns: 2

  92. "CCCA"

    Returns: 2

  93. "AABAA"

    Returns: 5

  94. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: -1

  95. "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: -1

  96. "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"

    Returns: -1

  97. "AABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAABA"

    Returns: 49

  98. "BAABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAAA"

    Returns: 17

  99. "ABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAA"

    Returns: 49

  100. "ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCA"

    Returns: 49

  101. "AAABBBCCCAAABBBCCCAAABBBCCCAAABBBCCCAAABBBCCCAAAA"

    Returns: 33

  102. "AAAAAABBBAAAAAABBBAAAAAABBBAAAAAABBBAAAAAABBBAAAA"

    Returns: -1

  103. "AAAAAAAAAAAAAAAACCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBB"

    Returns: 33

  104. "AABABAAABABABBBCABCABCABABBBABABBBBBBABAABABAABCCC"

    Returns: 42

  105. "ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABBAB"

    Returns: 50

  106. "AAABBBCCCAAABBBCCCAAABBBCCCAAABBBCCCBBBAAACCCBBBA"

    Returns: 33

  107. "CBBABABAACAABAACAAACCCCCBAAAAAAAACBBAAABBBCCCAAAAA"

    Returns: 40

  108. "AAAABBCCBABABACCBBCABBCCCCBBBBAAAABBACCCBBAAABCABA"

    Returns: 44

  109. "AAAAAAAAAAAAAAAAAAAAABBBBBCCCCCCCCCCCCCCCCCCCCCCAA"

    Returns: 35

  110. "AABBABBAAAAACAAACCBAAAACACABCABBBCBBBCACBBAAACAACB"

    Returns: 42

  111. "AAAAAABBBBBCCCCCAAAACCCBBBBAAABCCCCBBBB"

    Returns: 29

  112. "AAAAAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCC"

    Returns: 34

  113. "AAAAABBBBBACCCABACAAAAABBBBBBCCCCCCBBAAAACCCCCBBBB"

    Returns: 39

  114. "AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCC"

    Returns: 33

  115. "AACAACAABBABACAACBCACCCAAABACABACACCBCCAAABABACBCC"

    Returns: 46

  116. "AAABBBAAABCBAACBBBCCCCCCCCCBCCAABCBACABACCBBBBBBB"

    Returns: 40

  117. "AAABAACAABAACAABAACAABAACAABAACAABAACAABAACAABAAAC"

    Returns: 18


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: