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\n",e);
            return 0;
        }else{
            continue;
        }
    }
    //无解情况
    printf("0\n");
    return 0;

}
posted @ 2019-09-03 19:53  Doragd  阅读(127)  评论(0编辑  收藏  举报