Java
测试点3超时
import java.io.*;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer = new PrintWriter(System.out);
int n = Integer.parseInt(reader.readLine());
int[] a = new int[n];
String[] input = reader.readLine().split(" ");
for (int i = 0; i < n; i++) {
a[i] = Integer.parseInt(input[i]);
}
Arrays.sort(a);
for (int i = n; i > 0; i--) {
if (a[n - i] > i) {
writer.println(i);
writer.flush();
return;
}
}
writer.println(0);
writer.flush();
reader.close();
}
}
C++
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int n;
int a[N];
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &a[i]);
sort(a, a + n);
for (int i = n; i > 0; i--) {
if (a[n - i] > i) {
printf("%d\n", i);
return 0;
}
}
printf("0\n");
return 0;
}