#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