一、题目概述
依据给定骑行记录计算Eddington number——E。E满足在N条记录中,有E天骑行超过E公里。
二、思路
按值降序排序,E取最后一个dist[i] > i的i。
三、代码
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int N, ans;
scanf("%d", &N);
vector<int> a(N + 1);
for(int i = 1; i <= N; ++i)
scanf("%d", &a[i]);
sort(a.begin() + 1, a.end(), [](int a, int b){return a > b;});
for(ans = 1; ans <= N && a[ans] > ans; ++ans);
printf("%d", ans - 1);
}