PAT B 1060は、エディントンはロジックの数が理解///

イギリスの天文学者エディントンはサイクリングが好きでした。彼はまた、それが「エディントン番号」E、Eの日が最大の整数マイルE E.上ライダーで満たされている定義し、乗り心地に自分のスキルを披露すると言われています エディントンは彼のE 87に等しいに言いました。
N SB今与えられた日のサイクリング距離、算出したE(≤N)に対応しますエディントン番号。

入力形式:
(≦10の最初の行の入力がNの整数正が与えられる。5)、即ち連続サイクリングの日数は、2行目に一日あたりサイクリング距離を表す整数N非負を与えます。

出力フォーマット:
行の日のエディントンN個所与。

サンプル入力:
10
。6. 6. 7 9 10 8 3 2 7 8

サンプル出力:
6

アイデア:配列を降順にソートして、スクラッチカウントから開始します。配列の添字は日数を表します。配列は一日ので、降順でソートされているので数は、あなたが出力答えをすることができ、1日のマイル数に応じた数よりも大きい場合。
例えば、被験試料は、降順でソート。

天数:  1   2  3  4  5  6  7  8  9  10
里程数:10  9  8  8  7  7  6  6  3   2

6日の最終的な出力6ように、6以上です。

#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a, int b) { return a > b; }
int main()
{
	int n;
	int arr[99999] = {0};
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> arr[i];
	sort(arr + 1, arr + n + 1, cmp); //从大到小排序
	int ans = 0, i = 1;
	while (ans < n && arr[i] > i)
	{
		ans++;
		i++;
	}
	cout << ans;
	return 0;
}
公開された101元の記事 ウォンの賞賛1 ビュー1957

おすすめ

転載: blog.csdn.net/weixin_43318827/article/details/105311105