题目描述
链接
给一串序列,求满足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;
}