Submission
Status:
[PPPPPPPPTSSS]
Score: 0
User: Jibhong
Problemset: 01.H-index
Language: cpp
Time: 1.078 second
Submitted On: 2025-03-31 14:36:54
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
int n;
cin>>n;
int mem[n+1];
for(int i=0;i<n;++i){
cin>>mem[i];
}
sort(mem,mem+n);
mem[n]=-1;
vector<pair<int,int>> dp;
int last=mem[0];
int cnt=1;
int total=0;
int out=0;
for(int i=1;i<=n;++i){
if(last==mem[i]){
++cnt;
continue;
}
dp.emplace_back(last,cnt);
out=max(out,min(last,n-i+cnt));
if(last<out)break;
// cout<<last<<' '<<n-i+cnt<<'\n';
cnt=1;
last=mem[i];
}
/*
for(int i=0;i<dp.size();++i){
auto [now,cnt]=dp[i];
total+=cnt;
out=max(out,min(total,now));
if(now<out)break;
}
*/
cout<<out;
return 0;
}