#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; void solve(int _id) { int n; cin >> n; map<int, int> mapa; for (int i = 0; i < n; i++) { int a; cin >> a; mapa[a]++; } vector< int > v; for (auto i : mapa) v.emplace_back(i.second); sort(v.begin(), v.end(), greater<>()); int sum = 0; for (int i = 0; i < v.size(); i++) { sum += v[i] - 1; int rest = n - sum - (i + 1); // cout << "sum: " << sum << " rest: " << rest << "\n"; if (sum >= rest) { cout << i + 1 << "\n"; return; } } cout << "WTF\n"; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // freopen("../d/1.in","r",stdin); // freopen("../wzo.out","w",stdout); // cin >> t; for (int i = 1; i <= t; i++) { solve(i); } return 0; } /* 1 cc 1 1 1 a ca cca */
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 59 60 61 62 63 64 65 66 67 | #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; void solve(int _id) { int n; cin >> n; map<int, int> mapa; for (int i = 0; i < n; i++) { int a; cin >> a; mapa[a]++; } vector< int > v; for (auto i : mapa) v.emplace_back(i.second); sort(v.begin(), v.end(), greater<>()); int sum = 0; for (int i = 0; i < v.size(); i++) { sum += v[i] - 1; int rest = n - sum - (i + 1); // cout << "sum: " << sum << " rest: " << rest << "\n"; if (sum >= rest) { cout << i + 1 << "\n"; return; } } cout << "WTF\n"; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // freopen("../d/1.in","r",stdin); // freopen("../wzo.out","w",stdout); // cin >> t; for (int i = 1; i <= t; i++) { solve(i); } return 0; } /* 1 cc 1 1 1 a ca cca */ |