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
#include <cstdio>
#include <unordered_map>

int main(void)
{
	int n;
	std::unordered_map<int, int> znaczki, grupy;

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		unsigned miasto;

		scanf("%d", &miasto);
		znaczki[miasto]++;
	}

	for (const auto& [miasto, znaczkow] : znaczki) {
		grupy[znaczkow]++;
	}

	for (int k = 1; k <= n; k++) {
		int r = 0;

		for (const auto& [znaczkow, miast] : grupy) {
			r += (znaczkow - znaczkow % k) * miast;
		}

		printf("%d ", r);
	}

	puts("");
	return 0;
}