Submission
Status:
[PPPPPPPPTSSS]
Score: 0
User: monpluk
Problemset: 01.H-index
Language: cpp
Time: 1.012 second
Submitted On: 2025-04-08 16:37:31
#include <iostream>
#include <vector>
using namespace std;
int main(){
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;
}