#!/usr/bin/python3
n = int(input())
original_sequence = [int(a) for a in input().split()]
assert(len(original_sequence) == n)
def solve():
kub = [0] * (n+10)
for a in original_sequence:
kub[a] += 1
kub.sort(reverse=True)
while kub[-1] == 0:
kub.pop()
#print(kub)
wyn = 0
left = sum(kub)
pojemnosc = 0
for licznosc in kub:
wyn += 1
left -= licznosc
pojemnosc += licznosc - 1
if pojemnosc >= left:
return wyn
# Wynikiem jest liczba rodzajów elementów
return wyn
print(solve())
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 | #!/usr/bin/python3 n = int(input()) original_sequence = [int(a) for a in input().split()] assert(len(original_sequence) == n) def solve(): kub = [0] * (n+10) for a in original_sequence: kub[a] += 1 kub.sort(reverse=True) while kub[-1] == 0: kub.pop() #print(kub) wyn = 0 left = sum(kub) pojemnosc = 0 for licznosc in kub: wyn += 1 left -= licznosc pojemnosc += licznosc - 1 if pojemnosc >= left: return wyn # Wynikiem jest liczba rodzajów elementów return wyn print(solve()) |
English