PAT A1117 Eddington Number [模拟]

题目描述

链接
给一串序列,求满足e天超过e公里的最大e

代码

#include<bits/stdc++.h>
using namespace std;

const int maxn = 1e5+10;
int a[maxn];

int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a,a+n);
    //有解情况下,e的最大取值为a[n-1]-1和n的最小值,e至少大于0,e天表示为a[n-e]因为排序了
    for(int e=min(a[n-1]-1, n); e>0; e--){
        if(a[n-e]>e){
            printf("%d
",e);
            return 0;
        }else{
            continue;
        }
    }
    //无解情况
    printf("0
");
    return 0;

}
原文地址:https://www.cnblogs.com/doragd/p/11455151.html