Statistics

Problem Statement for "FavouriteDigits"

Problem Statement

Tetka Rapotacka just heard a juicy rumor about one of her neighbors: poor Jachym has lost N kacky (their local monetary unit) on a slot machine yesterday. Tetka Rapotacka now plans to share this rumor with everyone, including Tetka Klepetacka. Tetka Rapotacka has two favourite digits: digit1 and digit2. She only likes numbers that contain at least count1 occurrences of digit1 and at least count2 occurrences of digit2. When gossiping, she only uses numbers she likes. So if she does not like the number N, she will increase it until she finds a number that she likes.

You are given the long N and the four ints digit1, count1, digit2, and count2. Return the smallest integer that is greater than or equal to N, contains at least count1 occurrences of digit digit1, and at least count2 occurrences of digit digit2.

Definition

Class:
FavouriteDigits
Method:
findNext
Parameters:
long, int, int, int, int
Returns:
long
Method signature:
long findNext(long N, int digit1, int count1, int digit2, int count2)
(be sure your method is public)

Notes

  • The constraints guarantee that the return value will always fit into a long.

Constraints

  • N will be between 1 and 10^15 - 1, inclusive.
  • digit1 will be between 0 and 9, inclusive.
  • digit2 will be between 0 and 9, inclusive.
  • digit1 and digit2 will not be equal.
  • count1 will be at least 0.
  • count2 will be at least 0.
  • count1+count2 will be at most 15.

Examples

  1. 47

    1

    0

    2

    0

    Returns: 47

    As count1=0 and count2=0, Tetka Rapotacka likes all numbers.

  2. 47

    5

    0

    9

    1

    Returns: 49

    The number has to contain the digit 9. The next number that contains this digit is 49.

  3. 47

    5

    0

    3

    1

    Returns: 53

  4. 47

    2

    1

    0

    2

    Returns: 200

    The correct return value may have more digits than N.

  5. 47

    5

    1

    0

    0

    Returns: 50

  6. 123456789012345

    1

    2

    2

    4

    Returns: 123456789012422

  7. 729999999999947

    0

    0

    3

    2

    Returns: 730000000000003

  8. 47

    4

    8

    7

    7

    Returns: 444444447777777

  9. 777

    4

    15

    0

    0

    Returns: 444444444444444

  10. 777

    7

    14

    0

    1

    Returns: 707777777777777

  11. 777

    7

    14

    8

    1

    Returns: 777777777777778

  12. 777

    7

    8

    4

    7

    Returns: 444444477777777

  13. 701234568901234

    6

    14

    0

    0

    Returns: 766666666666666

  14. 701234568901234

    6

    15

    0

    0

    Returns: 1666666666666666

  15. 474747470000001

    4

    3

    7

    2

    Returns: 474747470000001

  16. 434744725433512

    4

    8

    7

    5

    Returns: 434744727444477

  17. 1

    0

    1

    1

    0

    Returns: 10

  18. 1

    0

    15

    1

    0

    Returns: 1000000000000000

  19. 497

    0

    2

    5

    1

    Returns: 500

  20. 547

    0

    2

    5

    1

    Returns: 1005

  21. 3

    3

    1

    0

    0

    Returns: 3

  22. 3

    4

    1

    0

    0

    Returns: 4

  23. 3

    2

    1

    0

    0

    Returns: 12

  24. 701234568901234

    6

    14

    5

    1

    Returns: 1566666666666666

  25. 701234568901234

    6

    14

    1

    1

    Returns: 1066666666666666

  26. 92

    1

    1

    0

    0

    Returns: 100

  27. 992

    1

    2

    2

    1

    Returns: 1012

  28. 654923

    2

    10

    0

    2

    Returns: 200222222222

  29. 227739003

    6

    11

    9

    1

    Returns: 666666666669

  30. 996483325718

    4

    0

    0

    1

    Returns: 996483325720

  31. 5065495

    6

    0

    0

    6

    Returns: 6000000

  32. 699

    5

    6

    0

    0

    Returns: 555555

  33. 731957744920478

    9

    4

    3

    1

    Returns: 731957744920499

  34. 3306

    1

    1

    8

    11

    Returns: 188888888888

  35. 3718248575

    1

    1

    8

    4

    Returns: 3718248588

  36. 516838036

    3

    2

    7

    0

    Returns: 516838036

  37. 7

    4

    1

    2

    3

    Returns: 2224

  38. 848607

    3

    1

    0

    2

    Returns: 849003

  39. 254546402115955

    4

    10

    6

    1

    Returns: 254546404444444

  40. 61

    4

    0

    2

    1

    Returns: 62

  41. 3591862108116

    3

    0

    0

    0

    Returns: 3591862108116

  42. 2005034

    1

    7

    7

    1

    Returns: 11111117

  43. 91636980094

    0

    3

    6

    1

    Returns: 91636980100

  44. 30778434502

    3

    4

    2

    4

    Returns: 30782222333

  45. 430634311752445

    1

    8

    8

    0

    Returns: 430634411111111

  46. 2331035333284

    7

    1

    5

    3

    Returns: 2331035333557

  47. 72874

    3

    7

    0

    1

    Returns: 30333333

  48. 26

    0

    3

    2

    7

    Returns: 2000222222

  49. 315675

    0

    1

    3

    0

    Returns: 315680

  50. 89826

    0

    11

    9

    1

    Returns: 900000000000

  51. 599683752901925

    0

    0

    7

    6

    Returns: 599683752977777

  52. 799

    8

    0

    7

    1

    Returns: 799

  53. 6455

    1

    3

    5

    3

    Returns: 111555

  54. 5

    3

    13

    9

    0

    Returns: 3333333333333

  55. 2515618178

    2

    7

    9

    5

    Returns: 222222299999

  56. 417144712673

    2

    1

    5

    7

    Returns: 417152555555

  57. 3115256799

    2

    12

    1

    0

    Returns: 222222222222

  58. 981487

    5

    6

    2

    1

    Returns: 2555555

  59. 4562177184794

    9

    6

    6

    6

    Returns: 4666666999999

  60. 862

    4

    6

    0

    7

    Returns: 4000000044444

  61. 47590889088

    9

    5

    7

    5

    Returns: 47777799999

  62. 4557

    0

    1

    1

    2

    Returns: 5011

  63. 331056261798635

    0

    5

    4

    3

    Returns: 331056264000044

  64. 6

    7

    9

    3

    2

    Returns: 33777777777

  65. 58238

    0

    2

    8

    9

    Returns: 80088888888

  66. 107585

    5

    0

    7

    10

    Returns: 7777777777

  67. 464581114983

    0

    5

    3

    1

    Returns: 464581300000

  68. 55387

    1

    6

    4

    6

    Returns: 111111444444

  69. 384103915492

    5

    5

    1

    4

    Returns: 384111155555

  70. 30813298248472

    6

    3

    5

    2

    Returns: 30813298255666

  71. 15

    6

    0

    0

    0

    Returns: 15

  72. 539530074332695

    9

    3

    5

    8

    Returns: 539530095555559

  73. 2035614449522

    0

    3

    7

    0

    Returns: 2035614449600

  74. 7214

    6

    0

    0

    13

    Returns: 10000000000000

  75. 61

    9

    12

    6

    3

    Returns: 666999999999999

  76. 199297

    7

    2

    3

    1

    Returns: 199377

  77. 92

    1

    0

    2

    2

    Returns: 122

  78. 1788875131

    1

    0

    8

    3

    Returns: 1788875131

  79. 958

    7

    6

    9

    2

    Returns: 77777799

  80. 28453608033

    3

    1

    2

    0

    Returns: 28453608033

  81. 119243210122753

    5

    0

    4

    3

    Returns: 119243210122844

  82. 31

    1

    0

    5

    1

    Returns: 35

  83. 79

    6

    5

    4

    3

    Returns: 44466666

  84. 733

    4

    3

    0

    7

    Returns: 4000000044

  85. 4

    9

    0

    0

    2

    Returns: 100

  86. 5566267949

    1

    3

    4

    0

    Returns: 5566268111

  87. 864404636234

    2

    13

    9

    0

    Returns: 2222222222222

  88. 6245226

    4

    0

    8

    0

    Returns: 6245226

  89. 3

    5

    0

    1

    0

    Returns: 3

  90. 853763137

    9

    10

    6

    3

    Returns: 6669999999999

  91. 124565313525384

    3

    2

    0

    9

    Returns: 124600000000033

  92. 4134954849229

    2

    6

    3

    0

    Returns: 4134955222222

  93. 1962407043

    8

    11

    0

    1

    Returns: 808888888888

  94. 620681

    9

    0

    4

    3

    Returns: 621444

  95. 282

    9

    3

    0

    3

    Returns: 900099

  96. 3008402

    8

    2

    0

    0

    Returns: 3008408

  97. 86354037283377

    3

    5

    7

    3

    Returns: 86354037303377

  98. 929302

    0

    10

    1

    2

    Returns: 100000000001

  99. 9567586730587

    7

    3

    2

    7

    Returns: 9567722222227

  100. 39888232658

    7

    0

    5

    0

    Returns: 39888232658

  101. 6809956

    0

    4

    2

    3

    Returns: 10000222

  102. 8184038

    4

    12

    2

    0

    Returns: 444444444444

  103. 3143275326265

    8

    2

    0

    12

    Returns: 80000000000008

  104. 50561460

    2

    8

    4

    3

    Returns: 22222222444

  105. 5616661715

    8

    0

    5

    1

    Returns: 5616661715

  106. 438336226630705

    0

    1

    9

    4

    Returns: 438336226690999

  107. 6118

    0

    2

    6

    2

    Returns: 6600

  108. 802998516595

    6

    12

    0

    1

    Returns: 6066666666666

  109. 8324053

    4

    3

    3

    11

    Returns: 33333333333444

  110. 69619706734

    4

    15

    1

    0

    Returns: 444444444444444

  111. 3253

    8

    6

    7

    0

    Returns: 888888

  112. 23

    9

    5

    4

    0

    Returns: 99999

  113. 657

    4

    6

    2

    2

    Returns: 22444444

  114. 6333

    4

    0

    6

    11

    Returns: 66666666666

  115. 45143111

    0

    2

    2

    6

    Returns: 100222222

  116. 3271

    0

    0

    8

    6

    Returns: 888888

  117. 96239010815

    0

    6

    3

    8

    Returns: 30000003333333

  118. 58147471674488

    1

    7

    8

    5

    Returns: 58148111111888

  119. 19644574824

    3

    1

    7

    1

    Returns: 19644574830

  120. 5

    4

    0

    9

    4

    Returns: 9999

  121. 603960

    2

    2

    0

    10

    Returns: 200000000002

  122. 46451113560115

    0

    5

    8

    5

    Returns: 46458000008888

  123. 991

    7

    13

    0

    2

    Returns: 700777777777777

  124. 7665

    1

    10

    7

    2

    Returns: 111111111177

  125. 58221

    9

    10

    2

    2

    Returns: 229999999999

  126. 555041

    5

    0

    4

    0

    Returns: 555041

  127. 372786714

    5

    2

    4

    7

    Returns: 444444455

  128. 999999999999999

    0

    14

    9

    1

    Returns: 1000000000000009

  129. 999999999999999

    1

    1

    9

    14

    Returns: 1099999999999999

  130. 999999999999999

    8

    5

    9

    10

    Returns: 1888889999999999

  131. 999999999999999

    9

    10

    5

    5

    Returns: 1555559999999999

  132. 452129873217234

    8

    9

    2

    6

    Returns: 822222288888888

  133. 974094882455171

    0

    14

    9

    1

    Returns: 1000000000000009

  134. 123456789012345

    9

    8

    2

    4

    Returns: 123492229999999

  135. 1

    9

    14

    8

    1

    Returns: 899999999999999

  136. 23

    9

    8

    8

    7

    Returns: 888888899999999

  137. 999999999999

    4

    7

    7

    7

    Returns: 44444447777777

  138. 1

    0

    0

    9

    15

    Returns: 999999999999999

  139. 1

    7

    7

    0

    8

    Returns: 700000000777777

  140. 1

    0

    1

    9

    12

    Returns: 9099999999999

  141. 1

    1

    15

    0

    0

    Returns: 111111111111111

  142. 1

    9

    9

    8

    6

    Returns: 888888999999999

  143. 35535327435555

    5

    7

    3

    7

    Returns: 35535333335555

  144. 1

    9

    14

    2

    1

    Returns: 299999999999999

  145. 1

    1

    7

    2

    8

    Returns: 111111122222222

  146. 1

    0

    14

    1

    1

    Returns: 100000000000000

  147. 100000000000001

    0

    14

    9

    1

    Returns: 900000000000000

  148. 1

    9

    7

    0

    1

    Returns: 90999999

  149. 1

    0

    15

    2

    0

    Returns: 1000000000000000

  150. 1

    9

    15

    0

    0

    Returns: 999999999999999

  151. 1

    9

    7

    8

    8

    Returns: 888888889999999

  152. 100

    2

    0

    0

    3

    Returns: 1000

  153. 999999999999999

    9

    14

    8

    1

    Returns: 1899999999999999

  154. 100000000000000

    9

    7

    8

    6

    Returns: 108888889999999

  155. 1

    8

    7

    9

    8

    Returns: 888888899999999

  156. 100000000000000

    9

    14

    0

    1

    Returns: 909999999999999

  157. 3426234634563

    3

    8

    9

    3

    Returns: 3429333333399

  158. 1

    1

    10

    2

    4

    Returns: 11111111112222

  159. 1

    1

    6

    2

    6

    Returns: 111111222222

  160. 123456789

    1

    3

    2

    10

    Returns: 1112222222222

  161. 5

    2

    3

    0

    5

    Returns: 20000022

  162. 1

    1

    0

    9

    14

    Returns: 99999999999999

  163. 12345678901234

    9

    7

    8

    6

    Returns: 18888889999999

  164. 10

    9

    10

    8

    3

    Returns: 8889999999999

  165. 999

    0

    15

    1

    0

    Returns: 1000000000000000

  166. 55

    7

    1

    6

    1

    Returns: 67

  167. 999999999999999

    8

    14

    9

    1

    Returns: 1888888888888889

  168. 100000000000000

    0

    15

    1

    0

    Returns: 1000000000000000

  169. 1

    0

    5

    2

    4

    Returns: 200000222

  170. 2

    9

    15

    0

    0

    Returns: 999999999999999

  171. 1

    0

    2

    5

    0

    Returns: 100

  172. 1

    0

    15

    3

    0

    Returns: 1000000000000000

  173. 999999999999999

    2

    6

    1

    5

    Returns: 1000001111222222

  174. 1

    0

    2

    3

    0

    Returns: 100

  175. 999

    0

    2

    1

    0

    Returns: 1000

  176. 1118

    1

    3

    7

    1

    Returns: 1171

  177. 74

    3

    2

    0

    2

    Returns: 3003

  178. 1580247635

    1

    4

    0

    6

    Returns: 10000000111

  179. 7777777777

    5

    5

    0

    5

    Returns: 10000055555

  180. 2

    0

    10

    2

    5

    Returns: 200000000002222

  181. 999999999999999

    1

    7

    9

    8

    Returns: 1011111199999999

  182. 50

    0

    15

    9

    0

    Returns: 1000000000000000

  183. 975

    4

    1

    7

    1

    Returns: 1047

  184. 281

    3

    4

    0

    3

    Returns: 3000333

  185. 888888888888888

    0

    7

    9

    8

    Returns: 900000009999999

  186. 275

    9

    7

    0

    5

    Returns: 900000999999

  187. 1

    1

    0

    0

    0

    Returns: 1

  188. 999999999999999

    1

    1

    0

    14

    Returns: 1000000000000000

  189. 20000000000000

    1

    7

    9

    7

    Returns: 91111111999999

  190. 50

    0

    5

    9

    5

    Returns: 9000009999

  191. 1

    2

    0

    0

    2

    Returns: 100

  192. 987987987987987

    0

    0

    8

    15

    Returns: 1888888888888888

  193. 1

    8

    1

    9

    14

    Returns: 899999999999999

  194. 275

    9

    3

    0

    3

    Returns: 900099

  195. 123423

    3

    2

    2

    3

    Returns: 132223

  196. 9

    1

    1

    2

    4

    Returns: 12222

  197. 999999999999999

    4

    5

    7

    5

    Returns: 1000004444477777

  198. 1

    6

    10

    8

    5

    Returns: 666666666688888

  199. 555770

    5

    1

    7

    4

    Returns: 557777

  200. 1

    0

    5

    2

    5

    Returns: 2000002222

  201. 1

    0

    8

    9

    7

    Returns: 900000000999999

  202. 99999

    5

    2

    6

    2

    Returns: 105566

  203. 65

    4

    8

    0

    7

    Returns: 400000004444444

  204. 12

    4

    5

    0

    8

    Returns: 4000000004444

  205. 98

    1

    2

    3

    0

    Returns: 101

  206. 27

    0

    2

    9

    0

    Returns: 100

  207. 1

    6

    5

    7

    4

    Returns: 666667777

  208. 999999999999999

    1

    1

    0

    1

    Returns: 1000000000000000


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: