#include <bits/stdc++.h> using namespace std; #define FOR(i, lower, upper) for(int (i) = (lower); i <= (int)(upper); (i)++) #define FORD(i, upper, lower) for(int (i) = (upper); i >= (int)(lower); (i)--) const int N = 5e5; int n; int cnt[N + 1]; int main() { cin >> n; FOR(i, 1, n) { int x; cin >> x; cnt[x]++; } sort(cnt + 1, cnt + 1 + (int)5e5, greater<int>()); int sum = 0, i = 1, ans = 0; while(sum < n) { sum += 2 * cnt[i] - 1; ans++; i++; } cout << ans; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <bits/stdc++.h> using namespace std; #define FOR(i, lower, upper) for(int (i) = (lower); i <= (int)(upper); (i)++) #define FORD(i, upper, lower) for(int (i) = (upper); i >= (int)(lower); (i)--) const int N = 5e5; int n; int cnt[N + 1]; int main() { cin >> n; FOR(i, 1, n) { int x; cin >> x; cnt[x]++; } sort(cnt + 1, cnt + 1 + (int)5e5, greater<int>()); int sum = 0, i = 1, ans = 0; while(sum < n) { sum += 2 * cnt[i] - 1; ans++; i++; } cout << ans; } |