PAT Bブラシ道路1060エディントンタイトル数(25分)

エディントン番号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;
}
公開された73元の記事 ウォンの賞賛0 ビュー528

おすすめ

転載: blog.csdn.net/derbi123123/article/details/103812492