#include <cstdio>
#include <map>
#define REP(a, n) for (int a = 0; a < (n); ++a)
#define FOR(a, b, c) for (int a = (b); a <= (c); ++a)
using namespace std;
//////////////////////
int N;
int wyn[300005];
map<int,int> M;
int main() {
    scanf("%d", &N);
    REP(a, N) {
        int b;
        scanf("%d", &b);
        M[b]++;
    }
    for (auto p : M) {
        int w = p.second;
        FOR(k, 1, w)
            wyn[k] += w/k*k;
    }
    FOR(k, 1, N)
        printf("%d%c", wyn[k], k==N?'\n':' ');
}
        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  | #include <cstdio> #include <map> #define REP(a, n) for (int a = 0; a < (n); ++a) #define FOR(a, b, c) for (int a = (b); a <= (c); ++a) using namespace std; ////////////////////// int N; int wyn[300005]; map<int,int> M; int main() { scanf("%d", &N); REP(a, N) { int b; scanf("%d", &b); M[b]++; } for (auto p : M) { int w = p.second; FOR(k, 1, w) wyn[k] += w/k*k; } FOR(k, 1, N) printf("%d%c", wyn[k], k==N?'\n':' '); }  | 
            
        
                    English