题目描述
小杨同学为了提高自己的实力制定了做题计划,在第k天时,他必须要完成k道题,否则他就会偷懒。
小杨同学现在找到了一个题库,一共有几套题单,每一套题单中有一定数量的题目。但是他十分挑剔,每套题单他只会使用一次,每一天也只能使用一套题单里的题目,之后那套题单就会被弃之不用。对于每套题单,他不必完成题单内所有的题。
那么问题来了,小杨同学最多会做题几天才偷懒呢?
输入格式
第一行,1个数为n,表示有多少套题单。
第二行,n个整数 a1,a2,..,an,分别表示每套题单有多少道题。
输出格式
输出一行,小杨同学偷懒前最多做题天数。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int arr[1000005];
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i];
}
sort(arr,arr+n);
int num=1;
for(int i=0;i<n;i++){
if(arr[i]>=num){
num++;
}
}
cout<<num-1;
return 0;
}