#ifdef _MSC_VER
#ifndef __GNUC__
#pragma warning(disable: 4996)
#endif
#define main main1
#endif
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef unsigned int uint;
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
int n, wynik = 0;
vector<int> elementy;
cin >> n;
if(n == 1) {
cout << 1 << endl;
return 0;
}
elementy.resize(n+1);
for(int i = 0, j; i < n; ++i) {
cin >> j;
++elementy[j];
}
sort(elementy.begin(), elementy.end(), greater<int>());
for(vector<int>::iterator it = elementy.begin(); n > 0; ++it) {
n -= *it * 2 - 1;
++wynik;
}
cout << wynik << endl;
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 | #ifdef _MSC_VER #ifndef __GNUC__ #pragma warning(disable: 4996) #endif #define main main1 #endif #include <algorithm> #include <iostream> #include <vector> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef unsigned int uint; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int n, wynik = 0; vector<int> elementy; cin >> n; if(n == 1) { cout << 1 << endl; return 0; } elementy.resize(n+1); for(int i = 0, j; i < n; ++i) { cin >> j; ++elementy[j]; } sort(elementy.begin(), elementy.end(), greater<int>()); for(vector<int>::iterator it = elementy.begin(); n > 0; ++it) { n -= *it * 2 - 1; ++wynik; } cout << wynik << endl; return 0; } |
English