Statistics

Problem Statement for "OlympicCandles"

Problem Statement

To celebrate the upcoming Thought Challenge Olympics, you are going to follow tradition and light candles. On the first night of the event, you will light one candle. At the end of the night, you will extinguish the candle. On each subsequent night, you will light one more candle than you did on the previous night, so that on the n-th night (indexed from 1) you will light n candles (and extinguish them all in the morning). Each night that you light a candle, its height will decrease by 1 inch; once its height reaches 0 inches, you cannot use it anymore.

You are given a int[] candles, the i-th element of which is the height of the i-th candle that you own. Return the maximum number of nights you can celebrate the event without going to the store to get more candles. For example, if you have three candles of height 2, you can light one the first night, the other two on the second night, and then all three candles on the third night.

Definition

Class:
OlympicCandles
Method:
numberOfNights
Parameters:
int[]
Returns:
int
Method signature:
int numberOfNights(int[] candles)
(be sure your method is public)

Constraints

  • candles will contain between 1 and 50 elements, inclusive.
  • Each element of candles will be between 1 and 100, inclusive.

Examples

  1. {2, 2, 2}

    Returns: 3

    The example from the statement.

  2. {2, 2, 2, 4}

    Returns: 4

    With an extra candle we are able to use the candles for four nights.

  3. {5, 2, 2, 1}

    Returns: 3

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

    Returns: 6

  5. {4, 5, 2}

    Returns: 3

  6. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}

    Returns: 4

  7. {1, 3, 4, 2, 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: 50

  8. {1, 3, 4, 2, 5, 6, 7, 8, 9, 7, 11, 12, 13, 14, 15, 16, 14, 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, 45, 47, 48, 49, 50}

    Returns: 49

  9. {100, 99, 1, 1, 1, 1}

    Returns: 4

  10. {23, 34, 58, 10, 1, 21, 12, 2, 1, 4, 3, 12, 100, 3, 45, 1, 2, 4, 29, 40, 2, 1}

    Returns: 17

  11. {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, 50}

    Returns: 9

  12. {4,1,1,3,1,2,4,4,3,1,1,2,3,1,4,3,3,1,4,3,4,2,1,4,1,1,2,4,2,3,4,43,3,43,1,2,30,51,2,1,4,3,1,1,1,4,4,3,3,2}

    Returns: 18

  13. {4,3,3,3,3,2,1,30,2,1,3,1,4,3,1,51,1,3,4,2,4,4,2,3,1,3,3,1,92,4,60,2,4,2,3,1,1,2,4,1,3,4,3,89,4,2,4,2,18,3}

    Returns: 20

  14. {1,4,50,1,4,1,2,3,2,4,4,4,1,3,97,2,3,2,3,1,4,58,4,1,4,3,4,3,3,2,3,1,3,4,4,1,2,1,11,2,1,2,4,2,2,3,2,1,3,2}

    Returns: 18

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

    Returns: 15

  16. {3,1,2,1,4,4,2,1,1,2,1,2,4,3,3,1,1,3,71,2,1,4,3,95,1,2,3,3,3,2,1,1,1,88,27,58,16,4,3,2,3,4,3,4,1,1,3,1,2,2}

    Returns: 19

  17. {3,3,4,4,2,91,1,1,3,1,3,2,2,59,4}

    Returns: 9

  18. {1,1,4,3,29,1,1,1,1,3,2}

    Returns: 6

  19. {3,3,2,2,1,2,2}

    Returns: 5

  20. {2,2,2,1,4,3,3,1,2,4,4,4,1,3,3,4,4,2,3,3,4,99,2,3,3,2,2,1,1,2,4,3,2,3,4,2,14,1,3,1,4,4,89,3,2,46,3}

    Returns: 18

  21. {45,4}

    Returns: 2

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

    Returns: 5

  23. {4,2}

    Returns: 2

  24. {2,4,29,1,3,3,4,4,4,4,72,1,3,2,1,1,6,4,3,4,1,1,4,1,3,3,2,1,1,1,3,4,1,4,64,4,4,70,2,4,1,2,4}

    Returns: 18

  25. {1,1,22,3,3,50,3,49,1,4,2,2,1,4,2,1,3,4,4,2,1,1,4,3,1,3,2,1,3,4,2,1,3,1,1,3,4,3,2,2,3,63,2,1,1,2,4,4,1,2}

    Returns: 18

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

    Returns: 8

  27. {4,2,1,2,3,3,2,62,1}

    Returns: 6

  28. {2,2,2,1,1,4,4,40,1,3,3,3}

    Returns: 7

  29. {4,4,3,2,2,1,2,2,24,1,3,72,3,2,2,1,1,3,2,3,17,4,4,2,3,1,3,2,1,2,2}

    Returns: 13

  30. {4,2,2,3,4,1,3,4,1,3,2,1,94,1,2}

    Returns: 8

  31. {4,4,4,3,4,2,3,3,4}

    Returns: 7

  32. {1,2,3,1,2,3,4,3,1,4,1,1,4,4,2,2,4,3,2,2,41,48,4,1,3,3,3,2,4,4,4,1,3,1,3,1,2,24,34,3,1,3,1,1,2,2,1,4,3}

    Returns: 18

  33. {2,1,1,1,1,2,75,4,2}

    Returns: 5

  34. {2,2,3,2,3,3,1,2,2,1,4,3,23,4,53,4,1,1,4,75,2,4,2,4,3,3,1,4,1,4,4,4,3,3,3,3,1,1,1,3}

    Returns: 16

  35. {4,4,4,4,3,1,3,3,1,2,4,2,1,1,1,3,2,4,1,1,3,4,2,29,3,1,2,2,2,3,1,2,2,3,1,3,2,4,2,3,83,3,3,4,2,84,3,73}

    Returns: 18

  36. {2,4,2,2,3,3,2,1,3,4,4,3,1,49,1,1,4,100,1,1,2,3,1,1,1,2,2,2,1}

    Returns: 12

  37. {4,3,4,55,98,1,4,1,4,4,1,1,1}

    Returns: 9

  38. {98,2,6,1,50,4,2,2,98,1,83,4,2,2,1,9,1,4,8,3,4,2,3,4,1,2,2,1,16,4,1,1,1,18,3}

    Returns: 18

  39. {2,3,2,1,3,4,2,8,2,3,2,1,2,1,2,1,4,3,4,1,2,2,3,2,3,4,2,1,1,4,3,4,1,2,2,3,3,12,2,76,3,2}

    Returns: 15

  40. {3,1,4,3,42,4,4,3,4,3,4,3,3,1,1,2}

    Returns: 9

  41. {2,3,2,1,1,2,4,3,1,4,3,3,4,2,4,27,3,2,4,1,2,2,3,2,4,44,1,2,1,4,72,1,2,66,3,3,1,4,1,1,2,2,2,2,3,1,1,3,100}

    Returns: 18

  42. {4,11,2,2,1,4,1,4,28,4,4,2,2,1,3,3,1,2,1,2,2,1,2,2,3,2,1,4,2,2,3,4,1,69,2,4}

    Returns: 14

  43. {1,32,4,4,1,2,1,1,4,4,4,3,2,76,2,1,2}

    Returns: 10

  44. {1,77,2}

    Returns: 3

  45. {3,2,36,1,4,2,2,4,2,1,4,4,2,1,3,2,3,36,2,4,80,2,2,1,2,4,2,1,3,4,1,2,6,3,3,4,80,89,72,2,84}

    Returns: 19

  46. {3,3,4,1,1,4,3,2,2,4,3,2,2,3,1,4,1,4,5,4,1,4,4,2,2,96,3,4,4,3,3,3,4,3,3,3,4,3,2,34}

    Returns: 16

  47. {3,4,2,3,3,4,2,25,2,1,2,3,1,1,3,2,1,4,4,2,2,4,2,1}

    Returns: 11

  48. {2,1,1,4,3,3,2,2,75,4,4,40,2,2,2,4,4,3,4,2,3,3,2,3,4,3,2,4,2,3,2,1,3,4,3,3,90,3,3,3,39,4,4,4,3,4}

    Returns: 19

  49. {4,3,1}

    Returns: 3

  50. {4, 2, 3, 5, 7, 10, 12, 12, 15, 11, 4, 2, 14, 5, 7, 13, 22, 12, 15, 11, 4, 2, 11, 5, 14, 10, 22, 16, 14, 17, 4, 10, 3, 21, 7, 10, 11, 12, 14, 21, 21, 8, 2, 14, 11, 16, 24, 12, 16, 10 }

    Returns: 32

  51. {57, 100, 64 }

    Returns: 3

  52. {5, 2, 2, 1 }

    Returns: 3

  53. {100, 100, 100 }

    Returns: 3

  54. {100 }

    Returns: 1

  55. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    Returns: 11

  56. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    Returns: 50

  57. {10, 10, 10 }

    Returns: 3

  58. {1, 5, 6, 7, 88 }

    Returns: 5

  59. {1, 1 }

    Returns: 1

  60. {3 }

    Returns: 1

  61. {10 }

    Returns: 1

  62. {10, 10 }

    Returns: 2

  63. {100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 }

    Returns: 50

  64. {100, 100 }

    Returns: 2

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

    Returns: 9

  66. {10, 9, 2, 4 }

    Returns: 4

  67. {5, 5, 5 }

    Returns: 3

  68. {30 }

    Returns: 1

  69. {5 }

    Returns: 1

  70. {8, 8, 8, 8 }

    Returns: 4

  71. {20, 21, 22 }

    Returns: 3

  72. {100, 100, 100, 100, 100 }

    Returns: 5

  73. {100, 100, 95 }

    Returns: 3

  74. {1, 1, 1, 1, 100 }

    Returns: 3

  75. {100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 1 }

    Returns: 50

  76. {10, 5 }

    Returns: 2

  77. {100, 20, 30, 70, 60, 50, 10, 1, 99 }

    Returns: 9

  78. {100, 100, 100, 100, 100, 100, 100, 100, 100, 100 }

    Returns: 10

  79. {6 }

    Returns: 1

  80. {7, 7, 7 }

    Returns: 3

  81. {2, 7, 9, 3, 1, 2, 2, 2 }

    Returns: 6

  82. {99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 77, 66, 55, 88, 98, 99, 88, 99, 77, 88, 87, 89, 98, 76, 67, 89, 87, 78, 98, 87, 76, 67, 87, 65, 56, 78, 76, 56, 76, 87, 87, 65, 78, 76, 67 }

    Returns: 49

  83. {1, 2, 3, 2, 23, 4, 32, 32, 43, 66, 2, 3, 4, 34, 43, 54, 54, 76, 87, 56, 23, 34, 34, 34, 45, 45, 45, 56, 94, 94, 49, 34, 32, 4, 3, 24, 34, 23, 4, 3, 3, 3, 34 }

    Returns: 37

  84. {1, 2, 3, 2, 10 }

    Returns: 4

  85. {5, 5 }

    Returns: 2

  86. {1, 2 }

    Returns: 2

  87. {100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 }

    Returns: 49

  88. {6, 6, 6 }

    Returns: 3


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: