#include <bits/stdc++.h>
using namespace std;
unordered_map <int, int> mapa;
vector <int> v;
int ans[300007];
//drzewo przedzialowe pytanie w punkcie suma na przedziale
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n; cin >> n;
for(int i = 0;i<n;i++){
int a; cin >> a;
mapa[a]++;
if(mapa[a]==1){
v.push_back(a);
}
}
for(int i = 0;i<v.size();i++){
for(int j = 1;j<=mapa[v[i]];j++){
ans[j]+=(mapa[v[i]]/j)*j;
}
}
for(int i = 1;i<=n;i++){
cout << ans[i] << " ";
}
}
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 | #include <bits/stdc++.h> using namespace std; unordered_map <int, int> mapa; vector <int> v; int ans[300007]; //drzewo przedzialowe pytanie w punkcie suma na przedziale int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; for(int i = 0;i<n;i++){ int a; cin >> a; mapa[a]++; if(mapa[a]==1){ v.push_back(a); } } for(int i = 0;i<v.size();i++){ for(int j = 1;j<=mapa[v[i]];j++){ ans[j]+=(mapa[v[i]]/j)*j; } } for(int i = 1;i<=n;i++){ cout << ans[i] << " "; } } |
English