1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>
using namespace std;
const int MX=300100;
int n,x,a[MX],res[MX];
map<int,int> cnt;
int main() {
  scanf("%d",&n);
  for (int i=0; i<n; i++) {
    scanf("%d",&x);
    ++cnt[x];
  }
  for (auto it=cnt.begin(); it!=cnt.end(); it++) ++a[it->second];
  for (int i=1; i<=n; i++) if (a[i])
    for (int j=1; j<=i; j++) res[j]+=a[i]*(i-i%j);
  for (int i=1; i<=n; i++) printf("%d%c",res[i],(i==n)?'\n':' ');
  return 0;
}