题目翻译:
给出一个人连续骑行N
天的数据,求最大的E
,使得骑行公里数大于E
的天数至少有E
天。
题解思路:
先排序,然后扫描
代码:
#include<bits/stdc++.h>
using namespace std;
int N;
int m[100010];
int main()
{
cin >> N;
for (int i = 0;i < N;i++)
cin >> m[i];
sort(m, m + N, greater<int>());
for (int i = N;i >= 1;i--)
{
for (int j = 0;j < N;j++)
{
if (m[j] > i)
{
if (j == i - 1)
{
cout << i;return 0;
}
}
else
break;
}
}
cout << 0;
}
坑点:
如果碰见下面这种样例,应该输出0——对应测试点4
5
1 1 1 1 1