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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <bits/stdc++.h>

using namespace std;

#define int long long
#define fi first
#define se second

const int MAX = 20;

int a[MAX], b[MAX];
int acnt[MAX], bcnt[MAX];


void solve(){
	
	int n, x;
	cin >> n;
	
	map<int, int> mp;
	
	for(int i = 0; i < n; i++){
		
		cin >> x;
		mp[x]++;
	}
	
	queue<int> q;	
	for(auto ele : mp) q.push(ele.se);
	
	for(int k = 1; k <= n; k++){
		
		int siz = q.size();
		int ans = 0, akt;
		
		while(siz--){
			
			akt = q.front();
			q.pop();
			ans += akt - akt%k;
			if(akt > k) q.push(akt);
		}
		
		cout << ans << ' ';
	}
	
	cout << '\n';
}



signed main(){
	
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	
	int t = 1;
	//cin >> t;
	
	while(t--) solve();	
	
	return 0;
}