#include <bits/stdc++.h> using namespace std; typedef long long int ll; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,odp,a; map<int,int> znacz; vector<int> cnt; cin >> n; for (int x=1;x<=n;x++){ cin >> a; znacz[a]++; } for (pair<int,int> x:znacz)cnt.push_back(x.second); sort(cnt.begin(),cnt.end()); int p=0;cnt.push_back(1e9); for (int k=1;k<=n;k++){ odp=0; while(cnt[p]/k==0)p++; for (int x=p;x<cnt.size()-1;x++){ odp+=cnt[x]/k; } cout << odp*k << ' '; } cout << '\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 | #include <bits/stdc++.h> using namespace std; typedef long long int ll; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,odp,a; map<int,int> znacz; vector<int> cnt; cin >> n; for (int x=1;x<=n;x++){ cin >> a; znacz[a]++; } for (pair<int,int> x:znacz)cnt.push_back(x.second); sort(cnt.begin(),cnt.end()); int p=0;cnt.push_back(1e9); for (int k=1;k<=n;k++){ odp=0; while(cnt[p]/k==0)p++; for (int x=p;x<cnt.size()-1;x++){ odp+=cnt[x]/k; } cout << odp*k << ' '; } cout << '\n'; return 0; } |