# Wczytanie danych
n = int(input())
a = list(map(int, input().split()))
def count_stamps(n, a):
# Utworzenie słownika z częstościami
freq = {}
for i in range(n):
freq[a[i]] = freq.get(a[i], 0) + 1
# Sortowanie słownika
srt = sorted(freq.values(), key=lambda x: x, reverse=True)
# Obliczenie wyniku
res = [0] * n
res[0] = sum(srt)
for i in range(2, n+1):
res[i-1] = 0
j = 0
while j < len(srt) and srt[j] // i > 0:
res[i - 1] += (srt[j] // i) * i
j += 1
if res[i - 1] == 0:
break
return res
# Wywołanie funkcji
print(*count_stamps(n, a))
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 | # Wczytanie danych n = int(input()) a = list(map(int, input().split())) def count_stamps(n, a): # Utworzenie słownika z częstościami freq = {} for i in range(n): freq[a[i]] = freq.get(a[i], 0) + 1 # Sortowanie słownika srt = sorted(freq.values(), key=lambda x: x, reverse=True) # Obliczenie wyniku res = [0] * n res[0] = sum(srt) for i in range(2, n+1): res[i-1] = 0 j = 0 while j < len(srt) and srt[j] // i > 0: res[i - 1] += (srt[j] // i) * i j += 1 if res[i - 1] == 0: break return res # Wywołanie funkcji print(*count_stamps(n, a)) |
English