#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; } |
English