简单题。
#include <stdio.h>
#include <stdlib.h>
#define N 100000
int main(int argc, const char * argv[]) {
int n, e, *array, tmp, i;
setvbuf(stdin, calloc(1 << 20, sizeof(char)), _IOFBF, 1 << 20);
scanf("%d", &n);
array = (int *)calloc(n + 2, sizeof(int));
for(i = 0; i < n; i++){
scanf("%d", &tmp);
if(tmp > n){
array[n + 1]++;
}
else{
array[tmp]++;
}
}
i = n;
e = array[n + 1];
while(i >= 0 && e < i){
e += array[i--];
}
printf("%d\n", i);
free(array);
return 0;
}