#include<bits/stdc++.h>
using namespace std;
map<int,int>mapa;
int main(){
int n, i, a;
scanf("%d", &n);
for(i=0;i<n;i++){
scanf("%d", &a);
mapa[a]++;
}
vector<int>sett;
for(auto j: mapa){
sett.push_back(j.second);
// printf("%d ", j.second);
}
int zlicz = 0;
int wynik = 0;
sort(sett.begin(), sett.end());reverse(sett.begin(), sett.end());
for(auto it : sett){
wynik++;
zlicz+=(it)*2-1;
// printf("%d %d\n", wynik, zlicz);
if(zlicz>=n){
printf("%d\n", wynik);
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 | #include<bits/stdc++.h> using namespace std; map<int,int>mapa; int main(){ int n, i, a; scanf("%d", &n); for(i=0;i<n;i++){ scanf("%d", &a); mapa[a]++; } vector<int>sett; for(auto j: mapa){ sett.push_back(j.second); // printf("%d ", j.second); } int zlicz = 0; int wynik = 0; sort(sett.begin(), sett.end());reverse(sett.begin(), sett.end()); for(auto it : sett){ wynik++; zlicz+=(it)*2-1; // printf("%d %d\n", wynik, zlicz); if(zlicz>=n){ printf("%d\n", wynik); return 0; } } } |
English