# 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)) |