Statistics

Problem Statement for "BlackAndWhiteBallsEasy"

Problem Statement

Some black and some white balls are placed in a row. You are given a int[] balls that describes the row using run-length encoding. That is, the row of balls looks as follows:

  • At the beginning there are balls[0] white balls.
  • Then there are balls[1] black balls.
  • After those there are balls[2] white balls again.
  • ... and so on, alternating between white and black.

You have to split the entire row into segments. Each segment must be labeled either "white" or "black". A segment labeled "white" must contain exactly white white balls (and arbitrarily many black ones). A segment labeled "black" must contain exactly black black balls (and arbitrarily many white ones).

Find the number of ways in which we can split the row into segments and assign colors to those segments. Return that value modulo 1,000,000,007.

Definition

Class:
BlackAndWhiteBallsEasy
Method:
getNumber
Parameters:
int[], int, int
Returns:
int
Method signature:
int getNumber(int[] balls, int white, int black)
(be sure your method is public)

Constraints

  • balls will contain between 1 and 50 elements, inclusive.
  • Each element of balls will be between 1 and 50, inclusive.
  • white and black will be between 1 and 50, inclusive.

Examples

  1. {2, 2}

    1

    2

    Returns: 4

    The row of balls looks as follows: WWBB. The four ways to split it are listed below. White segment W, white segment W, black segment BB. White segment W, white segment WBB. White segment W, black segment WBB. Black segment WWBB. Note that the second and third way are considered distinct: the division of the row into segments is the same but the labels are not.

  2. {2, 1, 3}

    1

    1

    Returns: 14

  3. {1, 1, 1, 1, 1}

    1

    1

    Returns: 28

  4. {2, 2, 2, 2, 2}

    1

    1

    Returns: 236

  5. {3, 6, 3, 10}

    2

    3

    Returns: 12

  6. {30, 15, 45, 20, 8, 13, 7, 3, 25, 10}

    3

    2

    Returns: 180210099

  7. {50, 50, 50, 50}

    4

    7

    Returns: 8

  8. {9, 50, 7, 10, 8, 40, 4, 30, 4, 20, 8, 50, 29, 50, 27, 50, 8, 50, 22, 23, 37, 46, 5, 31, 4, 50, 4, 50, 8, 50, 25, 4, 9, 46, 6, 14, 15, 37, 20, 45, 2, 46, 5, 49, 6, 33, 8, 26, 8, 48}

    8

    50

    Returns: 461946928

  9. {9, 48, 13, 32, 26, 49, 18, 16, 22, 29, 19, 31, 3, 27, 22, 22, 13, 2, 9, 5, 22, 29, 7, 29, 20, 29, 11, 27, 7, 21, 21, 10, 22, 29, 39, 29, 5, 48, 18, 10, 36, 29, 21, 29, 16, 35, 19, 3, 22, 20}

    22

    29

    Returns: 887369975

  10. {34, 48, 48, 11, 4, 5, 26, 19, 27, 40, 33, 5, 43, 16, 40, 16, 20, 16, 7, 3, 19, 32, 43, 13, 50, 32, 15, 26, 31, 24, 33, 46, 26, 16, 17, 16, 43, 16, 43, 16, 43, 16, 30, 34, 8, 23, 27, 25, 21, 14}

    43

    16

    Returns: 648145438

  11. {49, 36, 27, 17, 12, 15, 17, 42, 13, 48, 8, 22, 21, 36, 11, 48, 31, 24, 39, 36, 8, 15, 11, 21, 5, 36, 3, 44, 18, 28, 21, 36, 21, 10, 21, 33, 21, 29, 21, 4, 21, 32, 27, 35, 30, 25, 43, 22, 5, 21}

    21

    36

    Returns: 957081205

  12. {22, 24, 19, 24, 25, 24, 16, 24, 2, 4, 39, 31, 25, 14, 26, 34, 18, 1, 13, 12, 41, 44, 41, 43, 3, 42, 1, 28, 38, 26, 18, 43, 22, 24, 12, 5, 30, 40, 7, 11, 33, 6, 18, 24, 2, 24, 22, 22, 46, 2}

    41

    24

    Returns: 809212125

  13. {1, 14, 34, 28, 32, 17, 16, 1, 12, 25, 4, 3, 17, 24, 21, 4, 28, 4, 35, 50, 47, 2, 5, 42, 9, 2, 19, 26, 40, 15, 4, 30, 9, 1, 47, 4, 16, 3, 9, 26, 11, 3, 48, 50, 4, 2, 9, 2, 40, 34}

    9

    4

    Returns: 134392597

  14. {18, 39, 39, 22, 47, 39, 38, 36, 35, 35, 18, 16, 27, 26, 32, 49, 40, 4, 16, 8, 1, 5, 1, 33, 42, 8, 1, 16, 23, 18, 1, 30, 9, 8, 1, 22, 47, 31, 6, 13, 1, 45, 49, 7, 4, 15, 17, 22, 1, 20}

    1

    40

    Returns: 856221124

  15. {20, 44, 32, 17, 22, 21, 42, 34, 28, 34, 40, 35, 5, 42, 23, 41, 14, 28, 35, 21, 32, 3, 33, 10, 28, 11, 1, 42, 21, 13, 7, 3, 15, 19, 2, 22, 2, 12, 11, 6, 38, 4, 22, 19, 40, 3, 44, 1, 16, 45}

    1

    11

    Returns: 68265807

  16. {14, 15, 11, 19, 48, 38, 11, 22, 26, 5, 44, 22, 15, 31, 31, 1, 33, 9, 5, 1, 48, 38, 34, 6, 1, 9, 24, 15, 13, 11, 19, 1, 6, 35, 22, 27, 10, 15, 30, 1, 36, 35, 16, 18, 7, 29, 14, 41, 29, 12}

    14

    9

    Returns: 914585004

  17. {1, 8, 2, 32, 40, 35, 9, 5, 29, 21, 48, 44, 9, 3, 14, 20, 7, 38, 50, 45, 11, 25, 10, 35, 35, 50, 18, 8, 24, 46, 25, 36, 29, 21, 48, 47, 9, 14, 32, 31, 14, 1, 9, 43, 31, 10, 30, 23, 32, 23}

    11

    41

    Returns: 413436508

  18. {42, 7, 2, 30, 26, 5, 31, 39, 29, 3, 2, 7, 22, 10, 33, 5, 11, 6, 45, 46, 11, 24, 10, 7, 47, 21, 11, 15, 12, 21, 12, 6, 41, 11, 29, 32, 19, 23, 18, 15, 7, 42, 2, 29, 22, 17, 47, 23, 24, 6}

    22

    7

    Returns: 693088473

  19. {4, 26, 4, 34, 8, 9, 11, 30, 5, 34, 27, 47, 15, 43, 43, 10, 46, 28, 49, 11, 43, 34, 1, 14, 23, 10, 37, 20, 8, 37, 17, 5, 16, 17, 28, 33, 32, 14, 25, 34, 6, 30, 45, 2, 30, 8, 1, 11, 42, 26}

    8

    34

    Returns: 790428328

  20. {30, 30, 4, 4, 4, 30, 4, 4, 30, 30, 4, 4, 4, 30, 4, 30, 4, 30, 4, 4, 30, 30, 4, 30, 4, 30, 30, 4, 30, 4, 4, 30, 30, 4, 30, 4, 30, 4, 4, 4, 4, 30, 4, 30, 4, 4, 4}

    4

    30

    Returns: 162641943

  21. {3, 50, 3, 3, 3, 50, 3, 3, 3, 3, 50, 50, 50, 3, 50, 3, 50, 3, 3, 3, 3, 3, 3, 3, 50, 3, 3, 3, 3}

    50

    3

    Returns: 470971694

  22. {39, 39, 1, 39, 39, 1, 39, 1, 1, 39, 1, 1, 1, 39, 39, 39, 1, 39, 1, 39, 1, 1, 1, 1, 39, 1, 39, 39, 1, 39, 1, 39, 39, 39}

    39

    1

    Returns: 500075278

  23. {44, 3, 44, 44, 44, 44, 3, 44, 44, 44, 3, 3, 44, 3, 3, 44, 3, 44, 3, 44, 3}

    3

    44

    Returns: 917174922

  24. {27, 32, 28, 28, 32, 27, 32, 33, 32, 32, 26, 27}

    32

    27

    Returns: 80510

  25. {48, 48, 47, 20, 47, 47, 21, 49, 22, 20, 47, 48, 21, 20, 47, 49, 21, 47, 20, 48, 21, 48, 20, 21, 47, 48, 20, 20}

    21

    48

    Returns: 455489788

  26. {9, 5, 6, 9, 7, 5, 7, 9, 7, 9, 8, 7, 8, 6, 8, 8, 7, 8, 9, 8, 6, 5, 5, 6, 6, 8, 7, 9}

    8

    6

    Returns: 5760002

  27. {7, 41, 42, 41, 42, 7, 6, 40, 41, 42, 41, 7, 40, 41, 6, 42, 7, 8, 8, 41, 6, 41, 8, 41, 7, 41, 6, 7, 42, 7, 41, 41, 42, 40, 40, 7, 40, 40, 41, 42, 41, 41, 8, 6, 8}

    7

    41

    Returns: 217861639

  28. {30, 9, 26, 10, 27, 9, 30, 28, 11, 11, 10, 9, 30, 28, 26, 26, 29, 26, 12, 27, 28}

    10

    28

    Returns: 33309157

  29. {37, 10, 36, 9, 10, 35, 7, 36, 9, 38, 37, 10, 35, 39, 6, 36, 10, 37, 6, 9, 8, 8, 8, 9, 6, 8, 8, 8, 37, 8, 38, 37, 39, 38, 8, 37, 36, 36, 37, 7, 9, 8, 8}

    37

    8

    Returns: 633037979

  30. {39, 35, 7, 39, 7, 7, 35, 7, 37, 37, 5, 37, 7, 5, 37, 36, 39}

    7

    37

    Returns: 458002

  31. {41, 16, 17, 38, 39, 17, 16, 39, 15, 39, 40, 38, 40, 14, 38, 13, 13, 37, 13, 15, 13, 15, 17, 15, 14, 17, 13, 14, 41, 40, 37, 14}

    39

    15

    Returns: 218031740

  32. {14, 42, 43, 46, 43, 44, 43, 14, 44, 43, 11, 14, 43, 13, 45, 41, 41, 42, 14, 46, 15, 14, 45, 12, 43, 41, 13, 43, 43, 43, 11, 14, 43, 11, 46, 43, 12, 14, 44, 14}

    14

    43

    Returns: 446254431

  33. {35, 35, 38, 37, 37, 36, 33, 31, 33, 32, 35, 34, 35, 41, 38, 40, 40, 36}

    38

    34

    Returns: 58062

  34. {17, 15, 16, 14, 31, 31, 19, 25, 28, 15, 16, 16, 15, 27, 28, 17, 16, 26, 15, 25, 15, 17, 16, 13, 30, 16, 28, 16}

    28

    16

    Returns: 18415651

  35. {25}

    31

    27

    Returns: 0

  36. {44, 44, 43, 43, 20, 19, 44, 44, 44, 43, 44, 43, 43, 20, 43, 44, 20, 20, 44, 21, 21, 44, 19, 20, 20, 44, 20, 44, 19, 20, 43, 19, 19, 45, 44, 43, 20, 19, 45, 21, 21, 43, 44, 44, 19, 20, 19, 20, 21, 20}

    20

    44

    Returns: 771609268

  37. {43, 42, 43, 43, 43, 42, 44, 28, 28, 28, 42, 43, 28, 28, 43, 28, 28, 44, 29, 44, 44, 29, 27, 27, 27, 43, 29, 28, 27, 43, 43, 27, 43, 43, 43, 29, 28, 43, 29, 27, 28, 43, 27, 43, 28, 27, 44, 28, 43, 28}

    28

    43

    Returns: 858598143

  38. {31, 36, 31, 29, 34, 31, 29, 34, 35, 29, 31, 35, 34, 31, 36, 29, 29, 35, 31, 31, 34, 31, 31, 29, 35, 36, 30, 29, 30, 36, 34, 36, 35, 36, 35, 35, 30, 30, 36, 29, 30, 36, 30, 29, 31, 35, 31, 36, 30, 30}

    30

    35

    Returns: 439774291

  39. {28, 2, 28, 2, 2, 2, 2, 27, 27, 27, 29, 2, 2, 2, 28, 2, 2, 2, 27, 28, 28, 2, 2, 27, 29, 28, 2, 27, 27, 28, 2, 28, 29, 2, 2, 29, 2, 27, 2, 28, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2}

    28

    2

    Returns: 857035785

  40. {31, 36, 29, 49, 48, 13, 12, 48, 38, 15, 46, 31, 8, 7, 26, 44, 17, 16, 1, 43, 26, 24, 16, 13, 30, 31, 24}

    8

    7

    Returns: 808417746

  41. {4, 7, 3, 27, 13, 39, 12, 17, 45, 10, 33, 47, 10, 47, 45, 36, 16, 9, 4, 4, 5, 47, 6, 1}

    26

    28

    Returns: 27

  42. {3, 12, 35, 38, 17, 28, 2, 41, 34, 21, 50, 41, 43, 12}

    37

    13

    Returns: 1

  43. {20, 15, 29, 17, 8, 50, 1, 20, 49, 44, 19}

    27

    2

    Returns: 2834

  44. {39, 21, 32, 50, 12, 48, 45, 27, 47, 29, 7, 37, 13, 40, 40, 30, 38, 17, 1, 7, 42, 7, 49, 47, 21, 34, 2, 41, 35, 9, 28, 45, 37, 48, 40, 36, 28, 19, 1, 15, 41, 39, 11, 34, 24, 32, 24}

    7

    15

    Returns: 984003325

  45. {10, 3, 3, 2, 6, 6, 2, 5, 1, 7, 4, 9, 7}

    4

    10

    Returns: 3

  46. {7, 9, 2, 10}

    10

    2

    Returns: 0

  47. {4, 9, 3, 9, 2, 10, 2, 4, 4, 1, 4, 3, 7, 1, 7, 3}

    7

    3

    Returns: 5132

  48. {3, 7, 1, 10, 3, 5, 6, 3, 3, 5, 10, 4, 8, 8, 6}

    5

    4

    Returns: 7024

  49. {5, 5, 9, 2, 7, 1, 3, 3, 5, 10, 6, 8, 3, 1, 7, 8, 7}

    1

    7

    Returns: 18548984

  50. {32, 15, 26, 18, 3, 43, 12, 19, 26, 38, 49, 33, 38, 17, 37, 43, 5, 11, 10, 16, 46, 36, 32, 14, 19, 15, 29, 26, 5, 16, 27, 37, 41, 24, 9, 1, 10, 21, 48, 30, 19, 18, 8, 31, 22, 2, 22, 29, 23, 50}

    1

    4

    Returns: 645979641

  51. {50, 27, 5, 49, 38, 34, 15, 8, 10, 11, 27, 1, 17, 21, 23, 6, 43, 37, 15, 37, 30, 34, 38, 38, 32, 10, 36, 50, 20, 22, 20, 4, 4, 47, 42, 49, 49, 38, 27, 22, 29, 45, 14, 28, 48, 49, 32, 41, 41, 31}

    3

    2

    Returns: 721510670

  52. {30, 8, 34, 40, 25, 34, 47, 40, 32, 22, 6, 37, 30, 47, 35, 27, 25, 35, 36, 38, 46, 50, 1, 37, 9, 14, 13, 28, 1, 43, 36, 22, 50, 5, 19, 11, 47, 10, 24, 49, 36, 49, 20, 18, 5, 34, 30, 41, 45, 17}

    24

    3

    Returns: 483024128

  53. {20, 9, 50, 8, 46, 24, 6, 26, 21, 27, 26, 36, 19, 43, 18, 25, 45, 37, 41, 14, 26, 39, 44, 4, 13, 12, 47, 23, 14, 47, 28, 16, 4, 20, 44, 22, 1, 50, 30, 39, 48, 16, 17, 44, 30, 48, 49, 28, 49, 31}

    32

    2

    Returns: 763769017

  54. {43, 12, 18, 27, 39, 43, 46, 5, 30, 20, 26, 16, 4, 16, 41, 20, 28, 2, 7, 11, 36, 44, 7, 44, 23, 16, 50, 6, 47, 4, 38, 50, 23, 21, 5, 23, 47, 10, 47, 29, 3, 17, 8, 27, 50, 44, 4, 37, 14, 36}

    11

    4

    Returns: 477624621

  55. {22, 44, 3, 45, 16, 27, 24, 31, 10, 38, 24, 36, 43, 42, 8, 3, 49, 44, 13, 36, 35, 43, 24, 30, 34, 45, 37, 3, 44, 28, 10, 5, 18, 19, 49, 1, 3, 5, 33, 9, 2, 41, 42, 45, 45, 38, 25, 32, 38, 33}

    1

    20

    Returns: 149655424

  56. {23, 33, 34, 7, 37, 31, 16, 21, 12, 34, 47, 46, 21, 48, 27, 13, 15, 34, 2, 28, 34, 36, 46, 17, 21, 20, 48, 35, 32, 33, 42, 32, 2, 48, 24, 16, 12, 12, 33, 27, 41, 13, 15, 10, 28, 36, 6, 24, 27, 10}

    2

    32

    Returns: 707025237

  57. {40, 47, 18, 22, 34, 2, 24, 44, 37, 50, 18, 12, 44, 6, 15, 45, 17, 24, 8, 2, 31, 9, 5, 42, 45, 32, 14, 49, 43, 41, 21, 5, 30, 41, 32, 11, 6, 33, 30, 16, 46, 16, 1, 39, 40, 26, 8, 37, 33, 46}

    4

    16

    Returns: 230136038

  58. {43, 32, 13, 47, 17, 17, 41, 12, 40, 10, 36, 20, 37, 43, 24, 32, 3, 6, 28, 19, 6, 14, 43, 39, 50, 34, 9, 37, 32, 47, 29, 10, 45, 18, 37, 37, 10, 40, 41, 15, 5, 19, 7, 35, 18, 26, 16, 13, 11, 10}

    5

    44

    Returns: 615014367

  59. {34, 33, 35, 7, 1, 11, 8, 26, 21, 9, 22, 8, 50, 8, 12, 8, 41, 11, 1, 37, 29, 39, 44, 16, 16, 23, 48, 44, 2, 40, 46, 27, 15, 36, 20, 31, 49, 7, 10, 40, 46, 16, 27, 2, 42, 24, 16, 45, 47, 4}

    4

    49

    Returns: 498427699

  60. {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}

    10

    10

    Returns: 658943249

  61. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}

    1

    1

    Returns: 426041896

  62. {5, 3, 1}

    3

    5

    Returns: 1

  63. {3, 3, 4, 2, 1, 2}

    4

    3

    Returns: 3

  64. {4, 4}

    2

    3

    Returns: 2

  65. {4, 2, 2, 3, 3, 4, 4, 1, 2, 1}

    5

    3

    Returns: 6

  66. {2, 1, 2, 5, 5}

    4

    4

    Returns: 2

  67. {4, 4, 2, 1, 5, 3, 5, 5}

    1

    5

    Returns: 943

  68. {3, 2, 2, 1, 3}

    3

    3

    Returns: 4

  69. {5, 2}

    1

    3

    Returns: 1

  70. {4, 4}

    1

    1

    Returns: 9

  71. {5, 3, 3, 5, 2}

    1

    2

    Returns: 300

  72. {2, 3}

    2

    1

    Returns: 5

  73. {5, 1, 3, 1, 3, 2, 2, 4}

    5

    2

    Returns: 36

  74. {4, 2, 2, 2, 3, 1, 5, 2, 5, 5}

    1

    5

    Returns: 1035

  75. {1, 2, 5}

    5

    2

    Returns: 2

  76. {3, 4, 4, 1, 4, 1, 5, 1, 3, 5}

    4

    4

    Returns: 19

  77. {3, 5, 4, 4}

    1

    2

    Returns: 143

  78. {5}

    4

    4

    Returns: 0

  79. {2, 1, 1, 5, 2, 5, 1, 3}

    4

    5

    Returns: 0

  80. {2, 3, 3, 3, 3, 2, 3, 2, 5}

    1

    2

    Returns: 36218

  81. {3, 1, 4, 1, 2, 1, 4, 1}

    4

    5

    Returns: 0

  82. {43, 24, 11, 12, 8, 4, 15, 23, 1, 8, 22, 39, 11, 32, 35, 38, 33, 42, 11, 34, 38, 5, 10, 42, 50, 11, 22, 37, 10, 50, 26, 26, 38, 29, 31, 8, 6, 23, 8, 24, 48, 13, 13, 15, 39, 47, 20, 48, 14, 25}

    9

    20

    Returns: 963630767

  83. {13, 18, 30, 23, 17, 49, 5, 14, 35, 48, 30, 1, 38, 24, 21, 12, 6, 39, 46, 20, 10, 28, 44, 9, 43, 27, 50, 3, 3, 14, 22, 25, 22, 5, 2, 37, 42, 1, 23, 16, 15, 8, 22, 14, 33, 28, 36, 1, 9, 21}

    5

    10

    Returns: 485983679

  84. {2, 2, 2, 2, 2, 2, 2, 2, 2 }

    2

    2

    Returns: 1540

  85. {2, 2 }

    1

    2

    Returns: 4

  86. {1 }

    1

    2

    Returns: 1


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: