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
//Solution by Mikołaj Kołek

#include "bits/stdc++.h"
#define intin *istream_iterator<int>(cin)

using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	int n = intin;
	unordered_map<int, int> appearances;
	for(int i = 0; i < n; i++)
		appearances[intin]++;
	
	vector<int> appearanceCount;
	for(const auto &[a, count] : appearances)
		appearanceCount.push_back(count);
	sort(appearanceCount.begin(), appearanceCount.end(), greater<int>());
	
	int counter = 0;
	for(int i = 0; i < n; i++) {
		counter += (appearanceCount[i] * 2) - 1;
		
		if(counter >= n) {
			cout << i + 1;
			return 0;
		}
	}
	
	return 0;
}