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
from collections import Counter

def maksymalna_liczba_znaczkow(n, znaczki):
    licznik = Counter(znaczki)
    wyniki = [0] * n
    posortowane_liczebnosci = sorted(licznik.values(), reverse=True)
    max_k = posortowane_liczebnosci[0]  
    
    for k in range(1, n + 1):
        if k > max_k:
            break 
        maks_liczba = 0
        for liczba_znaczkow in posortowane_liczebnosci:
            if liczba_znaczkow < k:
                break
            maks_liczba += (liczba_znaczkow // k) * k
        wyniki[k - 1] = maks_liczba

    return wyniki

def main():
    n = int(input())
    znaczki = list(map(int, input().split()))

    wyniki = maksymalna_liczba_znaczkow(n, znaczki)
    for wynik in wyniki:
        print(wynik, end=' ')
    print()

if __name__ == "__main__":
    main()