#include <bits/stdc++.h>
using namespace std;
#define st first
#define nd second
typedef long long int lli;
const int MAXN = 300005;
std::map<int, int> m;
lli res[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    
    for (int i=0; i<n; i++) {
        int a;
        scanf("%d", &a);
        m[a] = m[a]+1;
    }
    
    for (auto p : m) {
        int cnt = p.nd;
        
        for (int i=1; i<=cnt; i++) {
            res[i] += cnt - cnt%i;
        }
    }
    
    for (int i=1; i<n; i++)
        printf("%lld ", res[i]);
    printf("%lld\n", res[n]);
    
    return 0;
}
        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  | #include <bits/stdc++.h> using namespace std; #define st first #define nd second typedef long long int lli; const int MAXN = 300005; std::map<int, int> m; lli res[MAXN]; int main() { int n; scanf("%d", &n); for (int i=0; i<n; i++) { int a; scanf("%d", &a); m[a] = m[a]+1; } for (auto p : m) { int cnt = p.nd; for (int i=1; i<=cnt; i++) { res[i] += cnt - cnt%i; } } for (int i=1; i<n; i++) printf("%lld ", res[i]); printf("%lld\n", res[n]); return 0; }  | 
            
        
                    English