from collections import Counter import time def solution(n, znaczki): ilosci = Counter(znaczki) wystapienia = Counter(ilosci.values()) max_znaczkow = [0] * (n + 1) for liczba_znaczkow, ile_razy in wystapienia.items(): for dzielnik in range(1, liczba_znaczkow + 1): max_znaczkow[dzielnik] += dzielnik * (liczba_znaczkow//dzielnik) * ile_razy return " ".join(map(str, max_znaczkow[1:])) if __name__ == "__main__": n = int(input()) arr = list(map(int, input().split())) print(solution(n, arr))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from collections import Counter import time def solution(n, znaczki): ilosci = Counter(znaczki) wystapienia = Counter(ilosci.values()) max_znaczkow = [0] * (n + 1) for liczba_znaczkow, ile_razy in wystapienia.items(): for dzielnik in range(1, liczba_znaczkow + 1): max_znaczkow[dzielnik] += dzielnik * (liczba_znaczkow//dzielnik) * ile_razy return " ".join(map(str, max_znaczkow[1:])) if __name__ == "__main__": n = int(input()) arr = list(map(int, input().split())) print(solution(n, arr)) |