4613: 【GESP2403四级】做题

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

⼩杨同学为了提高自己的实力制定了做题计划,在第$k$ 天时,他必须要完成$k$ 道题,否则他就会偷懒。
小杨同学现在找到了一个题库,一共有$n$ 套题单,每一套题单中有一定数量的题目。但是他十分挑剔,每套题单他只会使用一次,每一天也只能使用一套题单里的题目,之后那套题单就会被弃之不用。对于每套题单,他不必完成题单内所有的题。
那么问题来了,小杨同学最多会做题几天才偷懒呢?

输入

第一行,$1$个数为 $n$,表示有多少套题单。
第二行,$n$个整数$a_1,a_2,...,a_n$ ,分别表示每套题单有多少道题。

输出

输出一行,小杨同学偷懒前最多做题天数。

样例输入 复制

4
3 1 4 1

样例输出 复制

3

提示

#include<bits/stdc++.h>
#define maxn 1000006
using namespace std;
long long a[maxn];int n;
int main()
{
    int m,ans=0;
    cin>>n;m=n;int s=1;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    for(int j=1;j<=m;j++)
    {
        for(int k=s;k<=n;k++)
        {
            if(j<=a[k])
            {
                ans++;
                a[k]=j;
                s=k;
                break;
            }
        }
    }
    cout<<ans;
    return 0;
 }