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