[GESP202403四级]做题

阅读量: 42 编辑

23、做题

小杨同学为了提⾼自己的实⼒制定了做题计划,在第 k 天时,他必须要完成 k 道题,否则他就会偷懒。

小杨同学现在找到了⼀个题库,⼀共有 n 套题单,每⼀套题单中有⼀定数量的题目。但是他十分挑剔,每套题单他只会使用⼀次,每⼀天也只能使用⼀套题单里的题目,之后那套题单就会被弃之不用。对于每套题单,他不必完成题单内所有的题。那么问题来了,字杨同学最多会做题几天才偷懒呢?

【输入格式】

第⼀行,1个数为n,表示有多少套题单。

第二行,n个整数a₁, a₂, ..., aₙ ,分别表示每套题单有多少道题。

【输出格式】

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

【输入样例】

4
3 1 4 1

3

对于全部数据,保证有1≤n≤10⁶ , 1≤aᵢ≤10⁹。

【输出样例】

3

【参考程序】

// 爱码岛编程
#include <bits/stdc++.h>
using namespace std;

#const int MAXN = 1000005
int arr[MAXN];

int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> arr[i];
    }
    sort(arr + 1, arr + n + 1);
    int k = 1, ans = 0;
    for (int i = 1; i <= n; i++) {
        if (k <= arr[i]) {
            k++;
            ans++;
        }
    }
    cout << ans << endl;
    return 0;
}
爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司