Statistics

Problem Statement for "MultiplesWithLimit"

Problem Statement

Your task is to find the minimal positive integer x such that:
1. x is an integer multiple of N.
2. The decimal representation of x doesn't contain any forbidden digits.
You will be given the forbidden digits as a int[] forbiddenDigits.


If there is no solution, you should return the String "IMPOSSIBLE" (quotes for clarity).
If there is a solution and its number of digits is strictly less than 9, you should return a String containing the integer x in base 10, with no leading zeros.
Otherwise, you should return a String of the form "abc...def(g digits)" (quotes for clarity). In the return value, abc are the first three digits of the smallest valid integer x, def are its last three digits, and g is the number of digits in x (a base-10 integer with no leading zeros).

Definition

Class:
MultiplesWithLimit
Method:
minMultiples
Parameters:
int, int[]
Returns:
String
Method signature:
String minMultiples(int N, int[] forbiddenDigits)
(be sure your method is public)

Constraints

  • N will be between 1 and 10000, inclusive.
  • forbiddenDigits will contain between 0 and 10 elements, inclusive.
  • Each element of forbiddenDigits will be between 0 and 9, inclusive.
  • The elements of forbiddenDigits will be pairwise distinct.

Examples

  1. 8

    {2,3,4,5,6,7,8,9}

    Returns: "1000"

    The smallest positive multiple of 8 that only contains digits 0 and 1 is 1000.

  2. 9

    {1,3,4,5,6,7,8,9}

    Returns: "222...222(9 digits)"

  3. 524

    {5,2,4}

    Returns: "3668"

  4. 10000

    {0}

    Returns: "IMPOSSIBLE"

  5. 1

    {0,1,2,3,4,5,6,7,8,9}

    Returns: "IMPOSSIBLE"

  6. 2007

    {1,2,3,4,5,6,8,9,0}

    Returns: "777...777(666 digits)"

  7. 100

    {1,2,3}

    Returns: "400"

  8. 200

    {3,4,5}

    Returns: "200"

  9. 862

    {1,4,6,7,8}

    Returns: "99992"

  10. 7048

    {1,4,5,6,7,9}

    Returns: "2332888"

  11. 4261

    {0,2,3,5,6,7,8}

    Returns: "9199499"

  12. 6867

    {0,4,5,7}

    Returns: "96138"

  13. 9543

    {0,1,2,3,5,8}

    Returns: "6479697"

  14. 7341

    {1,2,3,5,7,9}

    Returns: "44046"

  15. 7008

    {3,5,6,7,8}

    Returns: "21024"

  16. 4064

    {0,4,5,6,8,9}

    Returns: "337312"

  17. 5194

    {4,5,7}

    Returns: "10388"

  18. 4074

    {1,2,4,5,6}

    Returns: "387030"

  19. 8794

    {1,2,3,5,6,7,8,9}

    Returns: "444...404(14 digits)"

  20. 9723

    {1,2,3,8,9}

    Returns: "466704"

  21. 1940

    {0,3,4,8,9}

    Returns: "IMPOSSIBLE"

  22. 824

    {1,3,4,8,9}

    Returns: "20600"

  23. 9799

    {4,7}

    Returns: "19598"

  24. 9334

    {1,2,3,6,8}

    Returns: "700050"

  25. 5310

    {0,1,4,6,9}

    Returns: "IMPOSSIBLE"

  26. 1926

    {2,4,8,9}

    Returns: "11556"

  27. 2421

    {0,6,8,9}

    Returns: "2421"

  28. 1719

    {0,1,2,4}

    Returns: "6876"

  29. 3778

    {2,3,8}

    Returns: "7556"

  30. 4990

    {0,3,8,9}

    Returns: "IMPOSSIBLE"

  31. 5570

    {0,3,4,7,8,9}

    Returns: "IMPOSSIBLE"

  32. 5334

    {0,1,2,4,6,7,8,9}

    Returns: "IMPOSSIBLE"

  33. 4892

    {0,3,4,9}

    Returns: "78272"

  34. 8712

    {0,8,9}

    Returns: "17424"

  35. 2568

    {2,3,4,8,9}

    Returns: "115560"

  36. 3432

    {1,3,5,8}

    Returns: "24024"

  37. 2821

    {1,2,3,4,5,6,8,9}

    Returns: "777...777(9 digits)"

  38. 7531

    {0,3,5}

    Returns: "67779"

  39. 1630

    {2,5,6,7,9}

    Returns: "11410"

  40. 4433

    {1,2,5,7,8,9}

    Returns: "4433"

  41. 1818

    {0,4,6,8}

    Returns: "7272"

  42. 6221

    {1,4,5,6}

    Returns: "80873"

  43. 3516

    {1,9}

    Returns: "7032"

  44. 7220

    {2,3,4,5,9}

    Returns: "101080"

  45. 9327

    {1,3,4,5,8,9}

    Returns: "22767207"

  46. 6143

    {0,3,5,6,7}

    Returns: "18429"

  47. 76

    {1,6,7,8,9}

    Returns: "304"

  48. 5052

    {1,3,5,6}

    Returns: "20208"

  49. 2818

    {0,1,3,4,5,6,8}

    Returns: "22977972"

  50. 4910

    {0,3,4,5,7,8,9}

    Returns: "IMPOSSIBLE"

  51. 3336

    {0,1,7,8,9}

    Returns: "3336"

  52. 1247

    {3,5,7,8}

    Returns: "2494"

  53. 7268

    {0,2,3,5}

    Returns: "79948"

  54. 2102

    {0,2,3,4,8,9}

    Returns: "5166716"

  55. 7664

    {0,1,9}

    Returns: "7664"

  56. 9416

    {2,6,7}

    Returns: "404888"

  57. 2034

    {0,1,3,5,7,8}

    Returns: "26442"

  58. 8490

    {0,2,3,7,8,9}

    Returns: "IMPOSSIBLE"

  59. 1949

    {0,1,5,6,7,9}

    Returns: "23388"

  60. 3845

    {1,2,3,4,6,7,8,9}

    Returns: "500...005(12 digits)"

  61. 7262

    {5}

    Returns: "7262"

  62. 9787

    {1,6,7,8}

    Returns: "342545"

  63. 631

    {0,1,3,6,8,9}

    Returns: "2524"

  64. 2660

    {0,5,7,8}

    Returns: "IMPOSSIBLE"

  65. 9847

    {0,2,7,8}

    Returns: "19694"

  66. 2561

    {4,6,7,9}

    Returns: "5122"

  67. 7011

    {0,1,2,4,5,6,7}

    Returns: "33393393"

  68. 4155

    {0,1,2,6,7,8}

    Returns: "494445"

  69. 2969

    {3,4,5,6,9}

    Returns: "112822"

  70. 8655

    {0,2,6,7,9}

    Returns: "354855"

  71. 7782

    {3,4,5,8,9}

    Returns: "101166"

  72. 1569

    {0,1,2,3,6,7}

    Returns: "589944"

  73. 268

    {3,4,5,6,7,8}

    Returns: "9112"

  74. 9736

    {2,3,4,5,7,8}

    Returns: "6669160"

  75. 686

    {1,2,3,4,5,7}

    Returns: "686"

  76. 197

    {1,2,3}

    Returns: "788"

  77. 9316

    {2,3,4,7,9}

    Returns: "680068"

  78. 9646

    {1,4,8,9}

    Returns: "67522"

  79. 1809

    {0,2,4,5,6,7,9}

    Returns: "3133188"

  80. 1752

    {1,7,8}

    Returns: "3504"

  81. 5422

    {0,2,4,5,8,9}

    Returns: "1371766"

  82. 2289

    {1,2,4,5,8,9}

    Returns: "670677"

  83. 471

    {0,3,4,7,8}

    Returns: "5652"

  84. 1083

    {4,7,8}

    Returns: "2166"

  85. 6436

    {3,4,5,6,7}

    Returns: "180208"

  86. 5073

    {0,1,2,3,6,7,9}

    Returns: "4555554"

  87. 263

    {0,1,2,3,6,8}

    Returns: "4997"

  88. 5288

    {2,3,4,6,7,9}

    Returns: "185080"

  89. 4677

    {0,1,5}

    Returns: "4677"

  90. 8681

    {0,1,4,6,7,8}

    Returns: "3229332"

  91. 4309

    {4,5,7,8,9}

    Returns: "30163"

  92. 1227

    {0,3,4,5,6,7,8}

    Returns: "9112929"

  93. 8610

    {0,1,3,4,9}

    Returns: "IMPOSSIBLE"

  94. 3434

    {1,2,4,5,6,8}

    Returns: "703970"

  95. 9974

    {0,1,3,5,8}

    Returns: "9974"

  96. 9565

    {2,4,5}

    Returns: "19130"

  97. 3904

    {6,8}

    Returns: "3904"

  98. 9704

    {1,2,4,5,7}

    Returns: "698688"

  99. 4784

    {0,1,2,4,9}

    Returns: "368368"

  100. 4485

    {6,9}

    Returns: "4485"

  101. 4774

    {3,5,6,8}

    Returns: "4774"

  102. 2060

    {0,1,5,6,8,9}

    Returns: "IMPOSSIBLE"

  103. 1380

    {1,3,4,7,8,9}

    Returns: "5520"

  104. 4477

    {4,5,6}

    Returns: "17908"

  105. 2115

    {0,1,2,3,4,5,8,9}

    Returns: "IMPOSSIBLE"

  106. 8757

    {2,3,6,7,8}

    Returns: "499149"

  107. 560

    {2,6,9}

    Returns: "4480"

  108. 262

    {0,1,2,3,7,8,9}

    Returns: "4454"

  109. 9981

    {0,2,3,4,5,6,7,8,9}

    Returns: "111...111(9972 digits)"

  110. 1

    {9,8,7,6,5,4,3,2,1}

    Returns: "IMPOSSIBLE"

  111. 1

    {0,1,2,3,4,5,6,7,8}

    Returns: "9"

  112. 1

    {}

    Returns: "1"

  113. 5

    {5}

    Returns: "10"

  114. 4

    {4,8}

    Returns: "12"

  115. 3

    {3,6,9}

    Returns: "12"

  116. 8

    {2,4,6,8}

    Returns: "1000"

  117. 9

    {1,2,3,4,5,6,9}

    Returns: "77778"

  118. 9

    {1,2,3,4,5,6,7,9}

    Returns: "888...888(9 digits)"

  119. 9

    {0,1,2,3,4,5,6,7,9}

    Returns: "888...888(9 digits)"

  120. 10000

    {}

    Returns: "10000"

  121. 625

    {5}

    Returns: "10000"

  122. 999

    {9}

    Returns: "111888"

  123. 7999

    {9}

    Returns: "1007874"

  124. 9999

    {9}

    Returns: "11118888"

  125. 399

    {8,9}

    Returns: "10374"

  126. 998

    {8,9}

    Returns: "111776"

  127. 3999

    {8,9}

    Returns: "1011747"

  128. 9998

    {8,9}

    Returns: "11117776"

  129. 172

    {2,4,6}

    Returns: "11008"

  130. 996

    {2,4,6}

    Returns: "301788"

  131. 1992

    {2,4,6}

    Returns: "1770888"

  132. 9996

    {2,4,6}

    Returns: "30017988"

  133. 8192

    {2,4,6,8}

    Returns: "100...000(14 digits)"

  134. 8192

    {1,2,4,6,8}

    Returns: "300...000(14 digits)"

  135. 8192

    {1,2,3,4,6,8}

    Returns: "500...000(14 digits)"

  136. 7992

    {2,3,4,6,7,8,9}

    Returns: "111...000(18 digits)"

  137. 9999

    {1,2,3,5,6,7,9}

    Returns: "444...888(20 digits)"

  138. 7992

    {1,2,3,4,5,6,8,9}

    Returns: "777...000(30 digits)"

  139. 9999

    {1,2,3,4,5,6,7,9}

    Returns: "888...888(36 digits)"

  140. 9927

    {0,1,2,3,4,5,6,7,9}

    Returns: "888...888(9918 digits)"

  141. 9931

    {0,1,2,3,4,5,6,7,8}

    Returns: "999...999(9930 digits)"

  142. 9949

    {0,1,2,3,4,5,6,7,8}

    Returns: "999...999(9948 digits)"

  143. 9967

    {0,1,2,3,4,5,6,7,8}

    Returns: "999...999(9966 digits)"

  144. 8

    {2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "1000"

  145. 524

    {5, 2, 4 }

    Returns: "3668"

  146. 8

    { }

    Returns: "8"

  147. 9

    {1, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "222...222(9 digits)"

  148. 8786

    {1, 3, 5, 6, 9 }

    Returns: "70288"

  149. 8192

    {2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "100...000(14 digits)"

  150. 1

    { }

    Returns: "1"

  151. 4433

    {0, 2, 4, 6, 8, 9, 3, 5 }

    Returns: "777...777(10 digits)"

  152. 9999

    {0, 2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "111...111(36 digits)"

  153. 81

    {0, 1, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "222...222(81 digits)"

  154. 6561

    {1, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "200...202(13 digits)"

  155. 81

    {2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "111...101(10 digits)"

  156. 9997

    {0, 2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "111...111(192 digits)"

  157. 2121

    {0, 1, 2, 3, 4, 5, 6, 7, 8 }

    Returns: "999...999(12 digits)"

  158. 9999

    {2, 3, 4, 5, 6, 7, 8, 9, 0 }

    Returns: "111...111(36 digits)"

  159. 1

    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "IMPOSSIBLE"

  160. 27

    {1, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "220...222(10 digits)"

  161. 2

    {1, 2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "IMPOSSIBLE"

  162. 2

    {0, 2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "IMPOSSIBLE"

  163. 9

    {0 }

    Returns: "9"

  164. 9999

    {9 }

    Returns: "11118888"

  165. 9

    {1, 2, 3, 4, 5, 6, 7, 9, 0 }

    Returns: "888...888(9 digits)"

  166. 6561

    {7 }

    Returns: "6561"

  167. 9999

    {1, 2, 3, 5, 6, 7, 8, 9 }

    Returns: "444...444(36 digits)"

  168. 5

    {0, 5 }

    Returns: "IMPOSSIBLE"

  169. 999

    {1, 2, 3, 4, 5, 6 }

    Returns: "999"

  170. 1

    {0, 1, 2, 3, 4, 5, 6, 7 }

    Returns: "8"

  171. 10000

    {0 }

    Returns: "IMPOSSIBLE"

  172. 9

    {0, 1, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "222...222(9 digits)"

  173. 99

    {0, 1, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "222...222(18 digits)"

  174. 9091

    {1, 4, 5, 6, 7, 8, 9, 0 }

    Returns: "222...222(10 digits)"

  175. 9116

    {2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "100...100(15 digits)"

  176. 999

    {2, 3, 4, 5, 6, 7, 8, 9 }

    Returns: "111...111(27 digits)"


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: