Statistics

Problem Statement for "RabbitNumbering"

Problem Statement

Taro and Hanako have rabbits, and they want to assign a distinct integer to each rabbit so they can easily identify them.

The rabbits have expressed their preferences to Taro and Hanako. The i-th rabbit wants an integer between 1 and maxNumber[i], inclusive. Taro and Hanako must obey the preferences of all their rabbits.

Return the number of ways they can assign numbers to their rabbits, modulo 1,000,000,007. If it's impossible to assign distinct integers to the rabbits, return 0.

Definition

Class:
RabbitNumbering
Method:
theCount
Parameters:
int[]
Returns:
int
Method signature:
int theCount(int[] maxNumber)
(be sure your method is public)

Constraints

  • maxNumber will contain between 1 and 50 elements, inclusive.
  • Each element of maxNumber will be between 1 and 1,000, inclusive.

Examples

  1. {5}

    Returns: 5

    They can assign any number between 1 and 5, inclusive, to the only rabbit.

  2. {4, 4, 4, 4}

    Returns: 24

    All permutations of {1, 2, 3, 4} are possible.

  3. {5, 8}

    Returns: 35

  4. {2, 1, 2}

    Returns: 0

  5. {25, 489, 76, 98, 704, 98, 768, 39, 697, 8, 56, 74, 36, 95, 87, 2, 968, 4, 920, 54, 873, 90}

    Returns: 676780400

  6. {190}

    Returns: 190

  7. {122, 123}

    Returns: 14884

  8. {472, 478, 306}

    Returns: 68603976

  9. {14, 4, 18, 11}

    Returns: 7200

  10. {2, 2, 5, 3, 5}

    Returns: 4

  11. {44, 23, 56, 22, 16, 57, 50, 56, 56, 84, 25, 52, 45, 16, 66, 39, 43, 17, 50, 14, 31, 71, 76, 58, 62, 56, 56, 49, 57, 7, 27, 37, 37, 48, 66, 33, 53}

    Returns: 912191125

  12. {41, 51}

    Returns: 2050

  13. {20, 29, 22, 44, 12, 35, 41, 68, 46, 56, 13, 44, 53, 25}

    Returns: 156265080

  14. {3, 12, 14, 17, 9, 26, 11, 23, 6, 17, 8, 18, 28, 23, 17, 16, 13, 21, 21, 22, 10, 30, 27, 23, 5}

    Returns: 489700007

  15. {20, 17, 4, 8}

    Returns: 7140

  16. {10, 34, 30, 24, 13, 45, 21, 43, 40, 7, 37, 50, 14, 47, 11, 35, 4, 50, 17, 44, 38, 8, 28, 8, 23, 2, 19, 42, 38, 16, 6, 18, 49, 25, 5, 40, 15, 27, 33, 43, 32, 32, 28, 19, 29, 2, 21, 48, 23, 10}

    Returns: 268435456

  17. {48, 21, 41, 32, 18, 49, 68, 39, 47, 39, 45, 11, 4, 45, 48, 17, 56, 59, 30, 2, 47, 31, 41, 27, 62, 34, 50, 9, 21, 30, 25, 46, 43, 41, 14, 21, 57, 35, 27, 47, 64, 43, 9, 38, 51, 34, 31, 33, 22}

    Returns: 96783208

  18. {277}

    Returns: 277

  19. {44, 26, 15, 24, 34, 8, 20, 38, 4, 22, 27, 23, 35, 41, 27, 38, 31, 20, 23}

    Returns: 877427600

  20. {40, 8, 46, 46, 2, 27, 19, 15, 40, 28, 22, 34, 14, 39, 31, 28, 39, 3, 31, 37, 19, 23, 23, 27, 29, 32, 15, 34, 23, 15, 23, 39, 34, 39}

    Returns: 581883665

  21. {965}

    Returns: 965

  22. {427, 166}

    Returns: 70716

  23. {165, 405, 874}

    Returns: 58127520

  24. {830, 822, 778, 225}

    Returns: 555824674

  25. {420, 380, 38, 839, 626}

    Returns: 652805463

  26. {229, 528, 772, 56, 321, 403, 762, 677, 806, 75, 280, 34, 977, 289, 798, 343, 698, 758, 939, 440, 383, 876, 262, 283, 492, 967, 675, 328, 319}

    Returns: 801937806

  27. {712, 985, 240, 450}

    Returns: 132426675

  28. {280, 626, 841, 850, 577, 423, 514, 16, 140, 494, 716, 886, 890, 889, 685, 532, 89, 786, 423, 652, 955, 284, 244, 214, 984, 268, 535, 597, 398}

    Returns: 237178289

  29. {620, 146, 888, 516, 84, 670, 454, 271, 779, 786, 978, 101, 354, 584, 596, 554, 592, 943, 288, 903, 98, 145, 354, 698, 810, 779, 126, 90, 190, 761, 545, 338, 199, 239, 58, 520, 889, 484, 293, 701, 91, 343, 586, 570, 169, 176}

    Returns: 499609145

  30. {64, 327, 767, 376, 724, 763, 615, 75, 912, 840, 812, 419, 962, 58, 44, 745, 876, 824, 272, 473, 280}

    Returns: 661838298

  31. {6}

    Returns: 6

  32. {108, 29}

    Returns: 3103

  33. {25, 4, 14}

    Returns: 1196

  34. {9, 564, 463, 1}

    Returns: 2068968

  35. {2, 287, 294, 260, 8}

    Returns: 297484320

  36. {26, 284, 692}

    Returns: 5077020

  37. {67, 578, 552, 268, 10, 147, 89, 348, 20, 384, 4, 152, 407, 26, 116, 53, 56, 28, 17, 101, 150, 2, 42, 5, 8, 10, 27}

    Returns: 239341733

  38. {69, 4, 7, 45, 180, 9, 3, 58, 2, 263, 86, 70, 86, 162, 5, 19, 315}

    Returns: 256996107

  39. {367, 20, 287, 22, 140, 439, 693, 288, 124, 37, 16, 82, 39, 287, 49, 5, 374, 12, 418, 35, 56, 12, 137, 362, 326, 15, 52, 2}

    Returns: 205386743

  40. {24, 100, 628, 9, 161, 22, 143, 110, 166, 49, 2, 142, 1, 4, 60, 58, 121, 9, 12, 31, 23, 61, 22, 69, 1, 550, 11, 85, 21, 22, 101, 37, 332}

    Returns: 0

  41. {1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000}

    Returns: 512907687

  42. {1000}

    Returns: 1000

  43. {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: 0

  44. {1}

    Returns: 1

  45. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50}

    Returns: 1

  46. {25, 489, 76, 98, 704, 98, 768, 39, 697, 8, 56, 74, 36, 95, 87, 2, 968, 4, 920, 54, 873, 90 }

    Returns: 676780400

  47. {5, 7 }

    Returns: 30

  48. {1000, 1000, 1000, 1000 }

    Returns: 10987042

  49. {530, 775, 820, 727, 734, 420, 687, 338, 695, 185, 431, 528, 429, 8, 857, 541, 988, 123, 827, 992, 495, 129, 273, 338, 534, 97, 405, 711, 88, 101, 728, 505, 736, 805, 836, 85, 298, 381, 943, 464, 71, 49, 668, 911, 691, 80, 663, 674, 950, 363 }

    Returns: 455673152

  50. {45, 45, 45, 34, 456, 444, 333 }

    Returns: 93026007

  51. {25, 489, 76, 98, 704, 98, 768, 39, 697, 8, 999, 74, 36, 95, 87, 2, 968, 4, 920, 999, 999, 909 }

    Returns: 690914420

  52. {25, 489, 76, 98, 704, 98, 798, 39, 697, 8, 56, 74, 36, 95, 87, 2, 968, 4, 920, 54, 873, 90 }

    Returns: 703851616

  53. {1000, 1000, 1000, 1000, 1000, 1000, 234, 324, 345, 654 }

    Returns: 657239485

  54. {1000, 1000, 1000, 1000, 1000 }

    Returns: 943093762

  55. {999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999 }

    Returns: 210504217

  56. {2, 5, 125, 985, 657, 45, 11, 92, 12, 58, 125, 526, 548, 14, 54, 981, 126, 853, 265, 485, 123, 945, 12, 325, 425, 125, 365, 156, 165, 9, 574, 125 }

    Returns: 822647744

  57. {25, 489, 76, 98, 704, 98, 768, 39, 697, 8, 56, 74, 36, 95, 87, 2, 968, 4, 920, 54, 873, 90, 77, 78, 79, 80, 90, 31, 34, 35, 36, 37, 38, 39, 40, 567, 568, 569, 570, 234, 546 }

    Returns: 904675131

  58. {999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999 }

    Returns: 130223370

  59. {1, 2 }

    Returns: 1

  60. {1000, 1000, 1000, 1000, 1000, 999, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 997, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 997 }

    Returns: 458059245

  61. {1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }

    Returns: 512907687

  62. {1000, 1000, 1000, 1000, 1000, 1000 }

    Returns: 378286624

  63. {1000, 999, 1000, 998, 1000, 1000, 1000, 1000, 1000, 789, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }

    Returns: 403161038

  64. {1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }

    Returns: 112594051


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: