Statistics

Problem Statement for "WhiteHats"

Problem Statement

There is a number of people in a room, and each of them wears a hat which is either black or white. Every person counts the number of other people wearing white hats. You are given a int[] count, the i-th element of which is the number counted by the i-th person. Return the total number of people wearing white hats, or -1 if count doesn't correspond to a valid situation.

Definition

Class:
WhiteHats
Method:
whiteNumber
Parameters:
int[]
Returns:
int
Method signature:
int whiteNumber(int[] count)
(be sure your method is public)

Constraints

  • count will contain between 2 and 50 elements, inclusive.
  • Each element of count will be between 0 and 50, inclusive.

Examples

  1. {2,1,1}

    Returns: 2

    The first person wears a black hat and sees two people wearing white hats. Each person wearing a white hat sees only one other white hat in the room.

  2. {2,2,2}

    Returns: 3

    Everyone wears a white hat here.

  3. {0,0}

    Returns: 0

    Black hats only.

  4. {1,1,1,2}

    Returns: -1

  5. {10,10}

    Returns: -1

    Now that's interesting. There are only two people in the room, yet each of them counted 10 others.

  6. {7,8,7,8,8,7,8,7,8,7,8,7,7,8,7,8}

    Returns: 8

  7. {1,1,1,1,1,1,1,1,1,1,0,1,1,1}

    Returns: 1

  8. {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2}

    Returns: 2

  9. {7,8,7,8,8,7,8,7,8,7,8,7,7,8,7,8}

    Returns: 8

  10. {17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17}

    Returns: 18

  11. {1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1}

    Returns: 1

  12. {1,0,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: 1

  13. {5,5,5,5,5,5,5}

    Returns: -1

  14. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

    Returns: 0

  15. {49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49}

    Returns: 50

  16. {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: -1

  17. {28,29,29,28,28,28,28,29,29,29,29,28,28,29,28,28,28,28,29,28,28,29,29,28,29,28,28,28,28,29,28,28,29,28,28,29,29,29,28,28,28,29,28,28,29,28,29,28,29,29}

    Returns: 29

  18. {19,19,19,19,18,18,18,18,18,18,18,18,19,18,18,19,19,18,19,18,19,18,19,19,18,18,18,18,19,18,18,19}

    Returns: 19

  19. {18,18,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,18,18,17,17,18,17,17,18}

    Returns: 18

  20. {7,7,7,7,7,7,7,7}

    Returns: 8

  21. {8,7,8,8,7,8,7,7,8,8,8,8,8,8,7,8,7,7,8,8,7,8}

    Returns: 8

  22. {29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30}

    Returns: 30

  23. {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,0,1,1,1,1,1,1}

    Returns: 1

  24. {20,21,21,21,20,20,21,21,21,20,21,20,20,21,21,21,20,20,20,21,20,20,20,20,20,20,21,20,20,20,20,20,20,21,21,21,21,21}

    Returns: 21

  25. {19,19,20,19,19,20,19,19,20,19,20,20,19,19,20,20,20,19,19,20,20,20,19,20,20,19,19,19,19,19,19,20,20,20,19,20,19,20}

    Returns: 20

  26. {4,5,5,4,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,4,5,5,5,5,5,5}

    Returns: 5

  27. {11,12,11,11,12,11,11,11,12,11,11,11,11,11,11,12}

    Returns: 12

  28. {20,21,20,20,21,21,20,21,21,21,20,21,21,20,21,21,21,21,20,20,21,20,20,20,21,20,20,21,20,21,20,20,20,20,21,20,21,20,21,21,21,20,21,21}

    Returns: 21

  29. {2,2,2}

    Returns: 3

  30. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

    Returns: 0

  31. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

    Returns: 0

  32. {26,25,25,25,26,25,25,25,26,25,25,26,25,25,25,25,25,25,25,25,26,25,25,25,25,26,26,25,26,25,25,25,25,25,26}

    Returns: 26

  33. {26,26,27,26,26,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,27,27}

    Returns: 27

  34. {19,19,20,19,20,20,19,19,19,19,20,20,19,19,19,20,19,19,20,19,19,19,19,19,20,20,19,20,20,19,19,20,20}

    Returns: 20

  35. {4,4,3,3,3,4,3,4,4,4}

    Returns: 4

  36. {16,16,16,16,16,16,16,16,16,16,16,17,16,16,16,16,16,16,17}

    Returns: 17

  37. {20,20,20,19,19,19,20,20,20,19,20,20,19,20,20,19,19,20,20,19,19,20,20,20,19,19,20,20,19,19,19,19,19,19,19,20,19,19,20,20}

    Returns: 20

  38. {3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3}

    Returns: 3

  39. {10,11,11,10,10,10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,11,10,10,11,11,11}

    Returns: 11

  40. {9,9,9,9,9,9,9,8,9,9,8,9,9,9,9,8,9,9,8,9,9,9,9,9,8,9,9,8,8,8,8,9}

    Returns: 9

  41. {1,1,2}

    Returns: 2

  42. {27,28,27,28,28,27,28,27,27,28,28,28,27,27,27,27,28,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,28,27,27,27,28,28,27,28,27,28}

    Returns: 28

  43. {41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,41,41,41,41,41,41,41,41,41,41,42,41,41,41,41,41,42,42}

    Returns: 42

  44. {8,8,7,8,7,8,7,8,7,7,7,8,7,7,8}

    Returns: 8

  45. {18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,19,18,18,19,19,19}

    Returns: 19

  46. {14,13,13,13,13,13,14,13,13,13,13,13,14,14,14,14,14,13,13,13,13,14}

    Returns: 14

  47. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

    Returns: 0

  48. {5,5,5,4,5,5,5,5,5,5,5,5,5,4,5,5,4,5,5,5,5,5,5,4,4,5,5,5,5,5,5}

    Returns: 5

  49. {9,8,8,8,9,9,8,8,8,8,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,8,9,9}

    Returns: 9

  50. {12,11,11,11,11,12,12,12,11,11,12,12,12,12,11,11,12,12,12,12,12,11,11,12,12,12,12,12,11,11,12,12,12,12,12,12,12,12,12}

    Returns: 12

  51. {23,22,22,22,22,23,22,22,22,22,22,22,22,22,23,22,22,22,22,22,22,23,22,22,23,22,22,23,22,23,23,0}

    Returns: -1

  52. {21,21,21,21,21,22,21,22,22,22,21,22,22,21,22,22,22,21,21,22,22,21,22,21,22,22,22,22,21,21,21,21,22,21,21,21,22,21,21,22,22,22,21,21}

    Returns: -1

  53. {4,4,4,6,4,4,6}

    Returns: -1

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

    Returns: -1

  55. {5,5,5,5,5,5,6,6,6,6,6,0}

    Returns: -1

  56. {2,2}

    Returns: -1

  57. {1,1,1,1,1,1,1,1,8}

    Returns: -1

  58. {34,34,33,33,33,33,34,34,33,34,33,33,34,34,33,34,33,33,34,33,33,33,33,33,34,33,33,33,33,34,32,33,33,33,33,33,33,33,34,34,34,33,33,33,33,33,33,33,34,34}

    Returns: -1

  59. {25,25,25,25,26,26,26,26,26,26,26,25,25,25,26,25,25,26,25,25,25,26,25,25,26,25,26,25,25,26,25,26,26,26,25,26,25,25,26,25,26,26,25,25,26,25,26,26,26}

    Returns: -1

  60. {0,0}

    Returns: 0

  61. {1,1}

    Returns: 2

  62. {1,0}

    Returns: 1

  63. {0, 0, 1 }

    Returns: -1

  64. {0, 2 }

    Returns: -1

  65. {4, 4, 3, 5, 4, 5 }

    Returns: -1

  66. {4, 3, 1, 0, 0 }

    Returns: -1

  67. {3, 3, 3, 3, 3 }

    Returns: -1

  68. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }

    Returns: 1

  69. {2, 2, 2 }

    Returns: 3

  70. {5, 0, 0, 0, 0, 0 }

    Returns: -1

  71. {5, 5, 5, 5, 5, 5, 5, 5 }

    Returns: -1

  72. {1, 1, 1, 1, 2, 2 }

    Returns: -1

  73. {1, 1, 1, 2 }

    Returns: -1

  74. {0, 0, 1, 2 }

    Returns: -1

  75. {3, 3, 3, 4, 4, 4, 4, 3 }

    Returns: 4

  76. {1, 1, 1, 1, 1, 1, 1 }

    Returns: -1

  77. {2, 2, 0 }

    Returns: -1

  78. {0, 0, 0, 3 }

    Returns: -1

  79. {3, 3, 3, 4, 4, 4, 4 }

    Returns: -1

  80. {1, 1, 1, 1, 1, 1 }

    Returns: -1

  81. {1, 1, 1, 3 }

    Returns: -1

  82. {1, 1, 2 }

    Returns: 2

  83. {0, 1, 2, 0 }

    Returns: -1

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

    Returns: -1

  85. {2, 2, 2, 2, 2, 2, 2 }

    Returns: -1

  86. {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 }

    Returns: 25

  87. {2, 2, 2, 2 }

    Returns: -1

  88. {1, 1, 3, 4 }

    Returns: -1

  89. {1, 0 }

    Returns: 1

  90. {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, 0 }

    Returns: 1

  91. {4, 4, 4, 4, 4, 5, 5, 5 }

    Returns: 5

  92. {3, 3, 2, 3, 1 }

    Returns: -1

  93. {2, 2, 2, 2, 2, 2, 1 }

    Returns: -1

  94. {1, 1, 1 }

    Returns: -1

  95. {0, 1 }

    Returns: 1

  96. {3, 3, 3, 3, 4, 4, 4 }

    Returns: 4

  97. {3, 0, 1 }

    Returns: -1

  98. {1, 2, 3 }

    Returns: -1

  99. {3, 3, 0, 0 }

    Returns: -1

  100. {1, 0, 3, 0, 0, 0 }

    Returns: -1

  101. {3, 3, 3, 3, 3, 3 }

    Returns: -1

  102. {2, 0, 0 }

    Returns: -1

  103. {1, 4, 1, 3 }

    Returns: -1

  104. {0, 1, 2 }

    Returns: -1

  105. {2, 2, 2, 2, 3, 4 }

    Returns: -1

  106. {5, 4, 4, 4, 4 }

    Returns: -1

  107. {1, 2 }

    Returns: -1

  108. {4, 4, 4, 4 }

    Returns: -1

  109. {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, 0 }

    Returns: 1

  110. {2, 2, 2, 0 }

    Returns: -1

  111. {0, 0, 2, 2 }

    Returns: -1

  112. {3, 3, 3, 3, 3, 3, 3, 3 }

    Returns: -1

  113. {0, 0, 2 }

    Returns: -1

  114. {4, 0, 0, 0, 0 }

    Returns: -1

  115. {2, 2 }

    Returns: -1

  116. {2, 3, 1 }

    Returns: -1

  117. {2, 2, 2, 1, 1 }

    Returns: 2

  118. {10, 11 }

    Returns: -1

  119. {4, 1, 1, 1, 1 }

    Returns: -1

  120. {2, 2, 1, 1, 1 }

    Returns: -1

  121. {2, 1, 1, 3, 3 }

    Returns: -1

  122. {1, 1 }

    Returns: 2

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

    Returns: -1

  124. {1, 1, 2, 3 }

    Returns: -1

  125. {0, 1, 2, 2, 3 }

    Returns: -1

  126. {6, 10, 6, 6, 6, 6, 6, 5, 5, 6 }

    Returns: -1

  127. {1, 2, 3, 0 }

    Returns: -1

  128. {1, 2, 3, 3, 3, 3, 3 }

    Returns: -1

  129. {0, 1, 1 }

    Returns: 1

  130. {0, 1, 1, 1, 1 }

    Returns: 1

  131. {1, 1, 2, 2, 2, 2, 2 }

    Returns: 2

  132. {1, 0, 1 }

    Returns: 1

  133. {2, 0 }

    Returns: -1

  134. {2, 2, 2, 2, 2 }

    Returns: -1

  135. {3, 3, 3, 3, 3, 3, 3 }

    Returns: -1

  136. {2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }

    Returns: -1

  137. {4, 0, 0 }

    Returns: -1

  138. {0, 0, 0, 0, 1 }

    Returns: -1

  139. {0, 2, 2, 2, 2 }

    Returns: -1

  140. {3, 3, 2, 2, 2 }

    Returns: 3

  141. {1, 0, 1, 1 }

    Returns: 1

  142. {2, 1, 2, 3 }

    Returns: -1

  143. {1, 1, 3 }

    Returns: -1

  144. {2, 3, 2, 2, 1 }

    Returns: -1

  145. {0, 0, 0, 0, 12 }

    Returns: -1

  146. {2, 2, 2, 2, 2, 5 }

    Returns: -1

  147. {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 }

    Returns: 20

  148. {1, 1, 3, 1, 2 }

    Returns: -1

  149. {3, 2, 1, 3 }

    Returns: -1

  150. {0, 1, 1, 1 }

    Returns: 1

  151. {3, 3, 3, 3, 4 }

    Returns: 4

  152. {49, 49, 49, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }

    Returns: -1

  153. {4, 4, 4, 4, 4, 5, 5 }

    Returns: 5

  154. {3, 3, 3, 3, 3, 5 }

    Returns: -1

  155. {3, 4, 4, 4, 3 }

    Returns: -1

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

    Returns: -1

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

    Returns: -1

  158. {2, 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: