#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 */ |
English