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