#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int main() {
int n;
cin >> n;
unordered_map<int, int> miasta; // (miasto, indeks miasta w tablicy ile_miasto)
vector<int> ile_miasto; // ile razy miasto o danym indeksie sie pojawilo
for (int i = 0; i < n; i++) {
int curr;
cin >> curr;
auto iter = miasta.find(curr);
if (iter != miasta.end()) {
ile_miasto[miasta[curr]]++;
}
else {
miasta[curr] = (int)ile_miasto.size();
ile_miasto.push_back(1);
}
}
vector<int> ans(n, 0);
for (const auto& element : ile_miasto) {
for (int i = 0; i < element; i++) {
ans[i] += element - element%(i+1);
}
}
for (int i = 0; i < n; i++) {
cout << ans[i] << " ";
}
cout << "\n";
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 | #include <iostream> #include <vector> #include <unordered_map> using namespace std; int main() { int n; cin >> n; unordered_map<int, int> miasta; // (miasto, indeks miasta w tablicy ile_miasto) vector<int> ile_miasto; // ile razy miasto o danym indeksie sie pojawilo for (int i = 0; i < n; i++) { int curr; cin >> curr; auto iter = miasta.find(curr); if (iter != miasta.end()) { ile_miasto[miasta[curr]]++; } else { miasta[curr] = (int)ile_miasto.size(); ile_miasto.push_back(1); } } vector<int> ans(n, 0); for (const auto& element : ile_miasto) { for (int i = 0; i < element; i++) { ans[i] += element - element%(i+1); } } for (int i = 0; i < n; i++) { cout << ans[i] << " "; } cout << "\n"; return 0; } |
English