'''
解题思路:
如有 x 只兔子都回答 y,则至少有 ceil(x/(y+1))*(y+1) 只兔子
'''
class Solution:
def numRabbits(self, answers: List[int]) -> int:
if not answers:
return 0
A = answers
n = len(answers)
print(A)
Dic = {}
for i in range(n):
a = A[i]
if a not in Dic:
Dic[a] = 1
else:
Dic[a] += 1
#print(Dic)
res = 0
for key in Dic:
x = Dic[key] # 有 x 只兔子都回答 y
y = key
print('x=',Dic[key],'y=',key)
# 如有 x 只兔子都回答 y,则至少有 ceil(x/(y+1))*(y+1) 只兔子
if x%(y+1)==0:
res += x
else:
res += (x//(y+1)+1)*(y+1)
print(res)
return res
answers = [1, 1, 2] # 5
answers = [10, 10, 10] # 11
t = Solution().numRabbits(answers)
print(t)