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
32
33
34
35
36
37
38
39
40
41
#include <bits/stdc++.h>
#define FOR(i,p,k) for(int i=(p);i<=(k);++i)
#define REP(i,n) FOR(i,0,(n)-1)
#define ssize(x) (int((x).size()))
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define gc getchar_unlocked
#define pc putchar_unlocked
using namespace std;

void wczytaj(int &a){
	int c = gc();
	while(c < '0' || c > '9') c = gc();
	for(a = 0; c >= '0' && c <= '9'; c = gc()) a = 10*a+c-'0';
}
void wypisz(int a){
	vector<char> vec;
	do{
		vec.emplace_back('0'+a%10);
	} while(a /= 10);
	for(int i = ssize(vec); ~--i;) pc(vec[i]);
}

void solve(){
	int n;
	wczytaj(n);
	unordered_map<int, int> mapa;
	REP(i, n){
		int a;
		wczytaj(a);
		++mapa[a];
	}
	vector<int> wyn(n+1, 0);
	for(auto [kto, ile] : mapa) FOR(k, 1, ile) wyn[k] += ile/k*k;
	FOR(i, 1, n) wypisz(wyn[i]), pc(' ');
}

int main(){
	solve();
	return 0;
}