만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

우표

시간 제한2초메모리 제한1024 MB

요약
도시 번호가 붙은 우표가 주어질 때, k명이 같은 구성으로 나눠 가질 수 있는 우표의 최대 개수를 k마다 구합니다.
난이도

보통10점 중 5점

유형
수학, 해시맵
정답자
아직 제출이 없습니다

문제

Bajtazar는 한때 우표를 많이 모았다. 지금은 그 취미에 예전만큼 열중하지 않아서, 컬렉션을 어린 우표 애호가들에게 나눠주려고 한다. 다만 가능한 한 공평하게 나누고 싶어서 당신의 도움이 필요하다.

컬렉션에는 nn개의 우표가 있고, ii번째 우표는 도시 aia_i에서 왔다. 도시는 정수로 번호가 매겨져 있다. Bajtazar는 신문에 광고를 내서 우표를 나눠준다고 알린다. kk명의 지원자가 오면, 각 지원자는 우표의 부분집합을 받는데 한 가지 조건을 지켜야 한다. 모든 지원자가 받는 우표 다중집합이 같아야 한다. 즉, 지원자 두 명을 고르고 어떤 도시를 보더라도, 두 사람이 그 도시에서 받는 우표 개수가 같아야 한다. Bajtazar는 우표를 전혀 나눠주지 않아도 된다.

Bajtazar는 몇 명이 지원할지 정확히 모른다. 11부터 nn까지 각 kk에 대해, kk명이 지원했을 때 Bajtazar가 나눠줄 수 있는 우표의 최대 개수를 구하라.

입력

첫 줄에 정수 nn(1≤n≤3000001 \le n \le 300000)이 주어진다. 이는 Bajtazar가 가진 우표의 개수이다.

둘째 줄에는 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9)이 주어진다. 이는 우표가 온 도시 번호를 순서대로 나열한 것이다.

출력

nn개의 정수를 공백으로 구분해 한 줄에 출력한다. kk번째 정수는 kk명이 지원했을 때 Bajtazar가 나눠줄 수 있는 우표의 최대 개수이다.

힌트

예시 설명: 지원자가 한 명이면 Bajtazar는 가진 우표를 전부 그 사람에게 줄 수 있다.

지원자가 두 명이면 각 사람에게 도시 1의 우표 두 장, 도시 42의 우표 한 장, 도시 777의 우표 한 장을 줄 수 있다. 합계는 8장이다.

지원자가 네 명이면 각 사람에게 도시 1의 우표를 한 장씩 줄 수 있다.

지원자가 네 명보다 많으면 Bajtazar는 우표를 하나도 나눠줄 수 없다.

예제1

  1. 예제 1

    입력
    9
    1 1 777 42 777 1 42 1 777
    
    예상 출력
    9 8 6 4 0 0 0 0 0