#include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; vector<int>t(n); unordered_map<int,int>ile; for (int i=0; i<n; i++){ cin>>t[i]; ile[t[i]]=0; } for (int i=0;i<n;i++){ ile[t[i]]++; } vector<int>stosy; for(auto x:ile){ stosy.push_back(x.second); } sort(stosy.begin(),stosy.end()); reverse(stosy.begin(),stosy.end()); stosy.push_back(0); for (int k=1;k<=n;k++){ int wi=0; int ind=0; while (stosy[ind]>=k){ wi+=k*(stosy[ind]/k); ind++; } cout<<wi<<" "; } }
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 | #include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; vector<int>t(n); unordered_map<int,int>ile; for (int i=0; i<n; i++){ cin>>t[i]; ile[t[i]]=0; } for (int i=0;i<n;i++){ ile[t[i]]++; } vector<int>stosy; for(auto x:ile){ stosy.push_back(x.second); } sort(stosy.begin(),stosy.end()); reverse(stosy.begin(),stosy.end()); stosy.push_back(0); for (int k=1;k<=n;k++){ int wi=0; int ind=0; while (stosy[ind]>=k){ wi+=k*(stosy[ind]/k); ind++; } cout<<wi<<" "; } } |