エディントン番号1060(25分)
イギリスの天文学者エディントンはサイクリングが好きでした。彼はまた、それが「エディントン番号」E、Eの日が最大の整数マイルE E.上ライダーで満たされている定義し、乗り心地に自分のスキルを披露すると言われています エディントンは彼のE 87に等しいに言いました。
N SB今与えられた日のサイクリング距離、算出したE(≤N)に対応しますエディントン番号。
入力フォーマット:
最初の行の入力は、N(^ 5≤10)、連続サイクルの日、すなわち数整数陽性を与えられ、2行目に一日あたりサイクリング距離を表す整数N非負を与えます。
出力フォーマット:
行の日のエディントンN個所与。
サンプル入力:
10
6 7 6 9 10 8 3 2 7 8
出力サンプル:
6
分析:
直接用双重循环去找一定会超时,因为数据已经到达了10的五次方,故我们可以按骑行距离升序排列,骑行天数降序排列,找第一个骑行距离大于天数的骑行距离
对于题目中的例子也就是:
骑行距离:2 3 6 6 7 7 8 8 9 10
骑行天数:10 9 8 7 6 5 4 3 2 1
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int>re(n);
for (int i = 0; i < n; i++)
cin >> re[i];
sort(re.begin(), re.end());
for (int i = 0; i < n; i++)
if (re[i] > n - i)
{
cout << n - i;
return 0;
}
cout << 0;//这里有病,还有0天0公里,用0就过了
return 0;
}