#include <iostream> #include <fstream> #include <map> using namespace std; int n; int ileod[300001]; map<int, int> licz; void dolicz(int chuj){ for(int i=1; i<=chuj; i++) ileod[i]+=i*(chuj/i); } int main() { for(int i=0; i<300001; i++) ileod[i]=0; scanf("%d", &n); for(int i=0; i<n; i++){ int zmpom; scanf("%d", &zmpom); licz[zmpom]++; } for(auto it = licz.begin(); it!=licz.end(); it++){ dolicz(it->second); } for(int i=1; i<=n; i++) printf("%d ", ileod[i]); 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 | #include <iostream> #include <fstream> #include <map> using namespace std; int n; int ileod[300001]; map<int, int> licz; void dolicz(int chuj){ for(int i=1; i<=chuj; i++) ileod[i]+=i*(chuj/i); } int main() { for(int i=0; i<300001; i++) ileod[i]=0; scanf("%d", &n); for(int i=0; i<n; i++){ int zmpom; scanf("%d", &zmpom); licz[zmpom]++; } for(auto it = licz.begin(); it!=licz.end(); it++){ dolicz(it->second); } for(int i=1; i<=n; i++) printf("%d ", ileod[i]); return 0; } |