Statistics

Problem Statement for "AmoebaCode"

Problem Statement

Little Romeo likes cosmic amoebas a lot. Recently he found an ancient box, and he believes that there is an amoeba inside it. Unfortunately, the box is protected by a combination lock which contains a row of digits, each between 0 and K, inclusive. The initial combination, from left to right, is given in the String code. Romeo thinks that the lock will open if he replaces each 0 digit with some digit between 1 and K, inclusive, such that the minimal distance between any pair of equal digits is as big as possible. The distance between two numbers in positions A and B, respectively, is |A-B|. Return the maximal possible minimal distance that can be achieved.

Definition

Class:
AmoebaCode
Method:
find
Parameters:
String, int
Returns:
int
Method signature:
int find(String code, int K)
(be sure your method is public)

Constraints

  • K will be between 1 and 7, inclusive.
  • code will contain between K+1 and 50 characters, inclusive.
  • Each character of code will be a digit between 0 and K, inclusive.

Examples

  1. "01"

    1

    Returns: 1

  2. "1001"

    2

    Returns: 1

    There are only four possible ways to replace the '0's here: 1121 1211 1111 1221 In each of these combinations, the shortest distance between two equal digits is between consecutive equal digits (a distance of 1).

  3. "1010"

    2

    Returns: 2

  4. "01001"

    3

    Returns: 3

    One possible combination is "31231". There are two pairs of equal digits here. The distance between the two '3's is 3, and the distance between the two '1's is 3.

  5. "10012031001"

    3

    Returns: 2

  6. "00000000000000000000000000000000000000000001100001"

    7

    Returns: 1

  7. "00000000000000000000000000000000000000000012304567"

    7

    Returns: 4

  8. "00000000000000000000000000000000000000000000000000"

    7

    Returns: 7

  9. "00000000000000000000000000000000000000000000000077"

    7

    Returns: 1

  10. "77000000000000000000000000000000000000000000000000"

    7

    Returns: 1

  11. "00000000000000000000000000000000000000000713004567"

    7

    Returns: 4

  12. "01234567012345670123456701234567012345670123456700"

    7

    Returns: 4

  13. "11"

    1

    Returns: 1

  14. "010010100"

    1

    Returns: 1

  15. "111001001011101"

    1

    Returns: 1

  16. "10111100100011"

    1

    Returns: 1

  17. "1011100100111111111111101111111111111111110010111"

    1

    Returns: 1

  18. "11111011011110110001111111111110111001111101111111"

    1

    Returns: 1

  19. "0100000000001000010000001001011000101010010000100"

    1

    Returns: 1

  20. "0212"

    2

    Returns: 2

  21. "1200001"

    2

    Returns: 2

  22. "0000000000000000000000200"

    2

    Returns: 2

  23. "11012222211"

    2

    Returns: 1

  24. "1202000000000000120000000000200012000010000010010"

    2

    Returns: 1

  25. "00101200002020000000101012202200001022000000200000"

    2

    Returns: 1

  26. "00200000100000000100000000100200000000000000000200"

    2

    Returns: 1

  27. "00030"

    3

    Returns: 3

  28. "2031031203"

    3

    Returns: 2

  29. "30123"

    3

    Returns: 2

  30. "313200033211031320021310013222"

    3

    Returns: 1

  31. "0031213013232130313212313103231310123123123023121"

    3

    Returns: 2

  32. "32121203232312121213232302121232310120021313032121"

    3

    Returns: 2

  33. "0103023320020303201230000300321202100331002303212"

    3

    Returns: 1

  34. "30002"

    4

    Returns: 3

  35. "0100240120340"

    4

    Returns: 2

  36. "00020400001"

    4

    Returns: 4

  37. "3030443210030"

    4

    Returns: 1

  38. "1000010200043040021000302403000200014020304001421"

    4

    Returns: 3

  39. "4001000004000000000000002000000000000020000000000"

    4

    Returns: 3

  40. "0021000010001001000000100430032400300000300004200"

    4

    Returns: 3

  41. "000241"

    5

    Returns: 5

  42. "000030124351"

    5

    Returns: 5

  43. "50020000002300400035000000000"

    5

    Returns: 3

  44. "11252040211024115544125"

    5

    Returns: 1

  45. "30000321530040010040030105020053002502503024003000"

    5

    Returns: 3

  46. "0000000000000000000000000000000000000000000000000"

    5

    Returns: 5

  47. "0000000000000000000200020000000004000000000000010"

    5

    Returns: 4

  48. "15620035"

    6

    Returns: 5

  49. "5041320651342651"

    6

    Returns: 4

  50. "560421500604020153"

    6

    Returns: 4

  51. "4002502010050433600500220430425"

    6

    Returns: 1

  52. "34152431653264152613246034562346513245013624361406"

    6

    Returns: 3

  53. "1230465134026145362154602546130052314563241532641"

    6

    Returns: 3

  54. "0654010000600030000000405000164200000054000060002"

    6

    Returns: 4

  55. "00000506"

    7

    Returns: 7

  56. "46015324671052003"

    7

    Returns: 5

  57. "754362175"

    7

    Returns: 7

  58. "3000000700030100"

    7

    Returns: 6

  59. "00000000742003000000760000500000000030506000000000"

    7

    Returns: 6

  60. "0147503261047521604027316542017653400603400567214"

    7

    Returns: 4

  61. "5730000000204010003050600000500145070250360000705"

    7

    Returns: 5

  62. "07405260"

    7

    Returns: 7

  63. "01724653100206754"

    7

    Returns: 5

  64. "6752000136245713620457106203001570004"

    7

    Returns: 4

  65. "4463647315222557"

    7

    Returns: 1

  66. "6723067512037104035147010520600007530701643264001"

    7

    Returns: 4

  67. "0000000000000000000000000000000005040302010054321"

    7

    Returns: 5

  68. "4526074350000504023000050200172003400060502340170"

    7

    Returns: 5

  69. "200070000"

    7

    Returns: 7

  70. "040230000"

    7

    Returns: 7

  71. "20574360250000631"

    7

    Returns: 5

  72. "40000000000000"

    7

    Returns: 7

  73. "12345671234567123456712345671234567123456712345671"

    7

    Returns: 7

  74. "2345643276136547632576324576321"

    7

    Returns: 3

  75. "234567127654323456741234567"

    7

    Returns: 2

  76. "00000000000000000000000000000000000000000001000001"

    7

    Returns: 6

  77. "0603050700102400306070105020030406010000000007345"

    7

    Returns: 5

  78. "00000012000001300000140000015000001600000170000010"

    7

    Returns: 6

  79. "0000000000000000000000000000100000000000000000000"

    7

    Returns: 7

  80. "00000000450000000005400002000000000000000100000000"

    7

    Returns: 6

  81. "00000010000000000000000000000000400000000000300004"

    7

    Returns: 6

  82. "60000000000000000000000000000000000000000000000600"

    7

    Returns: 6

  83. "00012"

    2

    Returns: 2

  84. "00000000000000000000000000000000000051004003100005"

    7

    Returns: 6

  85. "00000000000000000000000000000000000000000001234567"

    7

    Returns: 7

  86. "0000000000000000000000000000000000000012340567"

    7

    Returns: 4

  87. "0700000700000700000000600203001005000000002500504"

    7

    Returns: 3

  88. "00000000000000000000000000000000000000000100100000"

    7

    Returns: 3

  89. "00000000000000000000000000000000000000000000000011"

    7

    Returns: 1

  90. "00000000000000000000000000000000000000000000000003"

    7

    Returns: 7

  91. "1002"

    3

    Returns: 2

  92. "0021"

    2

    Returns: 2

  93. "00010000"

    7

    Returns: 7

  94. "10050000012345670002010000200700000000100030002001"

    7

    Returns: 5

  95. "1201203"

    4

    Returns: 3

  96. "0000000000000000000000000000000000000000000000000"

    7

    Returns: 7

  97. "02003002470050020005003716450000600040700005000200"

    7

    Returns: 6

  98. "76543210"

    7

    Returns: 7

  99. "100023"

    3

    Returns: 3

  100. "2212101"

    3

    Returns: 1

  101. "1234567000000001234567"

    7

    Returns: 5

  102. "1000503200501063010000705010203050120400052030450"

    7

    Returns: 5

  103. "000000000000000006000000000400000000000000000"

    7

    Returns: 7

  104. "00000000000000707000000000000000000000000000000000"

    7

    Returns: 2

  105. "002"

    2

    Returns: 2

  106. "10350247012345670052010340250700234000102030402031"

    7

    Returns: 5

  107. "07650002"

    7

    Returns: 7

  108. "0001"

    2

    Returns: 2

  109. "00000002"

    7

    Returns: 7

  110. "10000000001"

    2

    Returns: 2

  111. "0123456700000000000000001234567"

    7

    Returns: 5

  112. "00000000000000000000"

    3

    Returns: 3

  113. "00000000000000000000000000000000000010000000000000"

    7

    Returns: 7

  114. "0002000000000000000000000001000300000010000000400"

    7

    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: