Statistics

Problem Statement for "PluCodeGenerator"

Problem Statement

You are creating a storage management system. This system should create new PLU codes for new items. The requirements state that a PLU code must be a positive integer that does not contain three consecutive equal digits. For example, PLU codes 11211, 73399, 655 and 30 are valid PLU codes, but 11111, 73339, 555 and 3000 are invalid (they contain 111, 333, 555 and 000 respectively). For statistical purposes you want to count the number of invalid PLU codes.

You will be given an int N. You should return the number of invalid PLU codes that are less than N.

Definition

Class:
PluCodeGenerator
Method:
countInvalidCodes
Parameters:
int
Returns:
int
Method signature:
int countInvalidCodes(int N)
(be sure your method is public)

Constraints

  • N will be between 1 and 1000000000, inclusive.

Examples

  1. 111

    Returns: 0

    The first invalid PLU code is 111, so there are no invalid PLU codes less than 111.

  2. 556

    Returns: 5

    The invalid PLU codes less than 556 are 111, 222, 333, 444 and 555.

  3. 1113

    Returns: 13

    The invalid PLU codes less than 1113 are 111, 222, 333, 444, 555, 666, 777, 888, 999, 1000, 1110, 1111 and 1112.

  4. 7346556

    Returns: 323647

  5. 11

    Returns: 0

  6. 19

    Returns: 0

  7. 20

    Returns: 0

  8. 111

    Returns: 0

  9. 112

    Returns: 1

  10. 222

    Returns: 1

  11. 223

    Returns: 2

  12. 998

    Returns: 8

  13. 1001

    Returns: 10

  14. 1002

    Returns: 10

  15. 1000000000

    Returns: 62190729

  16. 999999999

    Returns: 62190728

  17. 100000000

    Returns: 5351400

  18. 99999999

    Returns: 5351399

  19. 10000000

    Returns: 447570

  20. 9999999

    Returns: 447569

  21. 1000000

    Returns: 35919

  22. 999999

    Returns: 35918

  23. 100000

    Returns: 2700

  24. 99999

    Returns: 2699

  25. 10000

    Returns: 180

  26. 9999

    Returns: 179

  27. 1000

    Returns: 9

  28. 999

    Returns: 8

  29. 100

    Returns: 0

  30. 99

    Returns: 0

  31. 10

    Returns: 0

  32. 9

    Returns: 0

  33. 1

    Returns: 0

  34. 998998999

    Returns: 61189728

  35. 777777777

    Returns: 48156326

  36. 33333333

    Returns: 1718933

  37. 123456789

    Returns: 7558723

  38. 987654321

    Returns: 60578006

  39. 192837465

    Returns: 11252914

  40. 918273645

    Returns: 56883815

  41. 100000001

    Returns: 5351401

  42. 900000009

    Returns: 55875257

  43. 900900900

    Returns: 56004884

  44. 2812

    Returns: 45

  45. 6078

    Returns: 105

  46. 6826

    Returns: 121

  47. 4806

    Returns: 83

  48. 5555

    Returns: 95

  49. 6303

    Returns: 107

  50. 4284

    Returns: 69

  51. 5032

    Returns: 86

  52. 2418

    Returns: 41

  53. 1147

    Returns: 20

  54. 6519507

    Returns: 283615

  55. 4630256

    Returns: 204963

  56. 1478984

    Returns: 62623

  57. 2398733

    Returns: 105130

  58. 4757913

    Returns: 209443

  59. 2923010

    Returns: 124414

  60. 9718690

    Returns: 428197

  61. 1749539

    Returns: 71971

  62. 2830687

    Returns: 120871

  63. 1740416

    Returns: 71718

  64. 558049233

    Returns: 34660122

  65. 773748451

    Returns: 47231626

  66. 65493199

    Returns: 3418849

  67. 492153196

    Returns: 30165973

  68. 446438071

    Returns: 27721865

  69. 8962471

    Returns: 399872

  70. 297904289

    Returns: 17799882

  71. 131594457

    Returns: 7929315

  72. 234594457

    Returns: 14469493

  73. 82646187

    Returns: 4385439

  74. 116133419

    Returns: 7130547

  75. 112343419

    Returns: 6963992

  76. 651411671

    Returns: 39722892

  77. 33951131

    Returns: 1805485

  78. 33912431

    Returns: 1804476

  79. 399658015

    Returns: 24188413

  80. 49915345

    Returns: 2614999

  81. 40358561

    Returns: 2104621

  82. 64324829

    Returns: 3366692

  83. 28215760

    Returns: 1453695

  84. 949174849

    Returns: 58560494

  85. 953087131

    Returns: 58740081

  86. 933370331

    Returns: 57728479

  87. 991564251

    Returns: 60854751

  88. 971671565

    Returns: 59768937

  89. 946708821

    Returns: 58451558

  90. 943248479

    Returns: 58201585

  91. 902763034

    Returns: 56090610

  92. 941956165

    Returns: 58144121

  93. 900077101

    Returns: 55952349

  94. 900000007

    Returns: 55875255

  95. 900030007

    Returns: 55905255

  96. 900300007

    Returns: 55982637

  97. 900900007

    Returns: 56004783

  98. 100000001

    Returns: 5351401

  99. 900000001

    Returns: 55875249

  100. 999000001

    Returns: 61190730

  101. 999999999

    Returns: 62190728

  102. 193499343

    Returns: 11286407

  103. 1000000000

    Returns: 62190729


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: