#include <bits/stdc++.h>
#define FOR(i,p,k) for(int i=(p);i<=(k);++i)
#define REP(i,n) FOR(i,0,(n)-1)
#define ssize(x) (int((x).size()))
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define gc getchar_unlocked
using namespace std;
void wczytaj(int &a){
int c = gc();
while(c < '0' || c > '9') c = gc();
for(a = 0; c >= '0' && c <= '9'; c = gc()) a = 10*a+c-'0';
}
void solve(){
int n;
wczytaj(n);
vector<int> kub(n, 0);
REP(i, n){
int a;
wczytaj(a);
++kub[a-1];
}
sort(rall(kub));
int suma = 0, wyn = 0;
while(suma < n) suma += (kub[wyn++]<<1)-1;
printf("%d", wyn);
}
int main(){
solve();
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 | #include <bits/stdc++.h> #define FOR(i,p,k) for(int i=(p);i<=(k);++i) #define REP(i,n) FOR(i,0,(n)-1) #define ssize(x) (int((x).size())) #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define gc getchar_unlocked using namespace std; void wczytaj(int &a){ int c = gc(); while(c < '0' || c > '9') c = gc(); for(a = 0; c >= '0' && c <= '9'; c = gc()) a = 10*a+c-'0'; } void solve(){ int n; wczytaj(n); vector<int> kub(n, 0); REP(i, n){ int a; wczytaj(a); ++kub[a-1]; } sort(rall(kub)); int suma = 0, wyn = 0; while(suma < n) suma += (kub[wyn++]<<1)-1; printf("%d", wyn); } int main(){ solve(); return 0; } |
English