Submission

Status:
[PPPPPPPPPPPP]

Score: 100

User: monpluk

Problemset: 01.H-index

Language: cpp

Time: 0.414 second

Submitted On: 2025-04-08 16:40:59

#include <iostream>
#include <vector>
using namespace std;

int main(){
    cin.tie(0)->sync_with_stdio(0);
    long long int n;
    cin >> n;
    bool valid;
    vector<long long int> arr;
    for(int i=0;i<n;i++){
        long long int a;
        cin >> a;
        arr.push_back(a);
    }
    int cnt = 0;
    for(int i=0;i<n;i++){
        if(arr[i] < n){
            break;
        }else{
            cnt++;
        }
    }
    if(cnt == n){
        cout << n;
        return 0;
    }
    long long int left = 0,right = n;
    while(left < right){
        long long int mid = (left + right)/2,cnt = 0;
        for(int i=0;i<n;i++){
            if(arr[i] >= mid){
                cnt++;
            }
        }
        if(cnt >= mid){
            left = mid + 1;
        }else{
            right = mid;
        }
    }
    cout << left-1;
}