#include <bits/stdc++.h> using namespace std; int INT() { int in; scanf("%d", &in); return in; } int main() { int n=INT(); unordered_map <int, int> amount; for(int i=0; i<n; ++i) ++amount[INT()]; vector <int> ans(n+1, 0); for(auto &p : amount) for(int k=1; k<=p.second; ++k) ans[k]+=p.second/k; for(int k=1; k<=n; ++k) printf("%d ", k*ans[k]); printf("\n"); exit(0); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <bits/stdc++.h> using namespace std; int INT() { int in; scanf("%d", &in); return in; } int main() { int n=INT(); unordered_map <int, int> amount; for(int i=0; i<n; ++i) ++amount[INT()]; vector <int> ans(n+1, 0); for(auto &p : amount) for(int k=1; k<=p.second; ++k) ans[k]+=p.second/k; for(int k=1; k<=n; ++k) printf("%d ", k*ans[k]); printf("\n"); exit(0); } |