#include <bits/stdc++.h> using namespace std; int n, p, s, res; bool check; vector<int>miasta; vector<pair<int,int>>lista; int main() { cin >> n; int tab[n]; for(int i = 0; i < n; i++) { cin >> p; /*check = false; tab[i] = p; for(int j = 0; j < miasta.size(); j++) { if(miasta[j] == p) { check = true; break; } } if(check == false) miasta.push_back(p);*/ check = false; for(int j = 0; j < lista.size(); j++) { if(lista[j].first == p) { lista[j].second++; check = true; break; } } if(!check) { lista.push_back({p,1}); } } s = lista.size(); for(int i = n; i > 0; i--) { res = 0; for(int j = 0; j < s; j++) { res += ((lista[j].second-(lista[j].second)%(n-i+1))/(n-i+1))*(n-i+1); } cout << res << " "; } 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 55 56 57 58 | #include <bits/stdc++.h> using namespace std; int n, p, s, res; bool check; vector<int>miasta; vector<pair<int,int>>lista; int main() { cin >> n; int tab[n]; for(int i = 0; i < n; i++) { cin >> p; /*check = false; tab[i] = p; for(int j = 0; j < miasta.size(); j++) { if(miasta[j] == p) { check = true; break; } } if(check == false) miasta.push_back(p);*/ check = false; for(int j = 0; j < lista.size(); j++) { if(lista[j].first == p) { lista[j].second++; check = true; break; } } if(!check) { lista.push_back({p,1}); } } s = lista.size(); for(int i = n; i > 0; i--) { res = 0; for(int j = 0; j < s; j++) { res += ((lista[j].second-(lista[j].second)%(n-i+1))/(n-i+1))*(n-i+1); } cout << res << " "; } return 0; } |