#include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; map<int, int> m1; map<int, int> m2; vector<int> indeksy1; vector<int> indeksy2; cin>>n; for(int i=0;i<n;i++){ int x; cin>>x; m1[x]++; if(m1[x]==1){ indeksy1.push_back(x); } } for(int i=0;i<indeksy1.size();i++){ m2[m1[indeksy1[i]]]++; if(m2[m1[indeksy1[i]]]==1){ indeksy2.push_back(m1[indeksy1[i]]); } } for(int i=1;i<=n;i++){ int wynik=0; int y=i; for(int j=0;j<indeksy2.size();j++){ wynik=wynik+(int(indeksy2[j])-int(indeksy2[j])%i)*m2[indeksy2[j]]; } cout<<wynik<<" "; } 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 | #include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; map<int, int> m1; map<int, int> m2; vector<int> indeksy1; vector<int> indeksy2; cin>>n; for(int i=0;i<n;i++){ int x; cin>>x; m1[x]++; if(m1[x]==1){ indeksy1.push_back(x); } } for(int i=0;i<indeksy1.size();i++){ m2[m1[indeksy1[i]]]++; if(m2[m1[indeksy1[i]]]==1){ indeksy2.push_back(m1[indeksy1[i]]); } } for(int i=1;i<=n;i++){ int wynik=0; int y=i; for(int j=0;j<indeksy2.size();j++){ wynik=wynik+(int(indeksy2[j])-int(indeksy2[j])%i)*m2[indeksy2[j]]; } cout<<wynik<<" "; } return 0; } |