#include <bits/stdc++.h> #define FOR(i,p,k) for(int i=(p);i<=(k);++i) #define REP(i,n) FOR(i,0,(n)-1) #define ssize(x) (int((x).size())) #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define gc getchar_unlocked #define pc putchar_unlocked using namespace std; void wczytaj(int &a){ int c = gc(); while(c < '0' || c > '9') c = gc(); for(a = 0; c >= '0' && c <= '9'; c = gc()) a = 10*a+c-'0'; } void wypisz(int a){ vector<char> vec; do{ vec.emplace_back('0'+a%10); } while(a /= 10); for(int i = ssize(vec); ~--i;) pc(vec[i]); } void solve(){ int n; wczytaj(n); unordered_map<int, int> mapa; REP(i, n){ int a; wczytaj(a); ++mapa[a]; } vector<int> wyn(n+1, 0); for(auto [kto, ile] : mapa) FOR(k, 1, ile) wyn[k] += ile/k*k; FOR(i, 1, n) wypisz(wyn[i]), pc(' '); } int main(){ solve(); 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 | #include <bits/stdc++.h> #define FOR(i,p,k) for(int i=(p);i<=(k);++i) #define REP(i,n) FOR(i,0,(n)-1) #define ssize(x) (int((x).size())) #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define gc getchar_unlocked #define pc putchar_unlocked using namespace std; void wczytaj(int &a){ int c = gc(); while(c < '0' || c > '9') c = gc(); for(a = 0; c >= '0' && c <= '9'; c = gc()) a = 10*a+c-'0'; } void wypisz(int a){ vector<char> vec; do{ vec.emplace_back('0'+a%10); } while(a /= 10); for(int i = ssize(vec); ~--i;) pc(vec[i]); } void solve(){ int n; wczytaj(n); unordered_map<int, int> mapa; REP(i, n){ int a; wczytaj(a); ++mapa[a]; } vector<int> wyn(n+1, 0); for(auto [kto, ile] : mapa) FOR(k, 1, ile) wyn[k] += ile/k*k; FOR(i, 1, n) wypisz(wyn[i]), pc(' '); } int main(){ solve(); return 0; } |