#include <iostream> #include <algorithm> #include <cmath> using namespace std; int main(){ std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int n, tab[300000],i; double tab2[300000]; int pop,t=0,ic,z; cin>>n; for(i=0;i<n;i++){ cin>>tab[i]; } sort(tab,tab+n); pop=tab[0]; tab2[0]=1; for(i=1;i<n;i++){ if(tab[i]==pop){ tab2[t]++; } else{ t++; pop = tab[i]; tab2[t]=1; } //cout<<tab[i]<<" "; } ic=n; pop=0; cout<<n<<" "; sort(tab2,tab2+t+1); /*cout<<"\n"; for(i=0;i<=t;i++){ cout<<tab2[i]<<" "; } cout<<"\n";*/ for(i=2;i<n+1;i++){ z=0; pop=t; while(floor(tab2[pop]/i)>0){ z += floor(tab2[pop]/i)*i; pop--; } cout<<z<<" "; } 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <iostream> #include <algorithm> #include <cmath> using namespace std; int main(){ std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int n, tab[300000],i; double tab2[300000]; int pop,t=0,ic,z; cin>>n; for(i=0;i<n;i++){ cin>>tab[i]; } sort(tab,tab+n); pop=tab[0]; tab2[0]=1; for(i=1;i<n;i++){ if(tab[i]==pop){ tab2[t]++; } else{ t++; pop = tab[i]; tab2[t]=1; } //cout<<tab[i]<<" "; } ic=n; pop=0; cout<<n<<" "; sort(tab2,tab2+t+1); /*cout<<"\n"; for(i=0;i<=t;i++){ cout<<tab2[i]<<" "; } cout<<"\n";*/ for(i=2;i<n+1;i++){ z=0; pop=t; while(floor(tab2[pop]/i)>0){ z += floor(tab2[pop]/i)*i; pop--; } cout<<z<<" "; } return 0; } |