Submission

Status:
[PPPPPPPPTSSS]

Score: 0

User: Jibhong

Problemset: 01.H-index

Language: cpp

Time: 1.082 second

Submitted On: 2025-03-31 14:07:41

#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;
    for(int i=1;i<=n;++i){
        if(last==mem[i]){
            ++cnt;
            continue;
        }
        dp.emplace_back(last,cnt);
        cnt=1;
        last=mem[i];
    }
    int total=0;
    int out=0;
//     cout<<'\n';
    for(int i=dp.size()-1;i>=0;--i){
        auto [now,cnt]=dp[i];
        total+=cnt;
//         cout<<now<<' '<<cnt<<' '<<total<<'\n';
        out=max(out,min(total,now));
    }
    cout<<out;
    return 0;
}