#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; } } } |