Submission

Status:
[PPPPPPPPTSSS]

Score: 0

User: Jibhong

Problemset: 01.H-index

Language: cpp

Time: 1.046 second

Submitted On: 2025-03-31 14:37:23

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

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