先将数组从小到大排序,遇到的第一个数的值比从该值到末尾的个数大时跳出循环,这个个数就是所求的最大的E
//
// main.cpp
// PATA1117
//
// Created by Phoenix on 2018/2/24.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main(int argc, const char * argv[]) {
int n;
scanf("%d", &n);
int a[n];
for(int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
sort(a, a + n);
int k = 0;
for(int i = 0; i < n; i++) {
//printf("%d ", a[i]);
if(n - i < a[i]) {
k = n - i;
break;
}
}
printf("%d", k);
return 0;
}