1. 程式人生 > >PAT 1060 愛丁頓數(累加思想)

PAT 1060 愛丁頓數(累加思想)

哎喲……又要難死了……這個人啊……真的不行啊……

題目等暫時略掉。

求滿足有 E 天騎車超過 E 英里的最大整數 E。

10
6 7 6 9 3 10 8 2 7 8

已案例為例,排好序,因為最大的數一定會比第E天大,所以乾脆排個序。

E天             E

1                 10           1天超過了1公里(指E=10)  E=1

2                  9            2天超過了2公里(指E=10 && E=9) E=2

3                  8            3天超過了3公里(指前三個 下略)E=3

4                  8            4天超過了4公里

5                  7           5天超過了5公里

6                  7           6天超過了6公里

7                  6           7天但是超過7的數只有4個 所以到這裡就停止了 可以退出了。

8                  6

9                  3

10                2

#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdio.h>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <map>

using namespace std;

bool cmp(int a, int b)
{
	return a > b;
}

int main()
{
	int n;
	cin >> n;
	int a[100005] = { 0 };
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	sort(a + 1, a + 1 + n, cmp);
	int maxx = 0;
	for (int i = 1; i <= n; i++)//第E天 檢視第E天是否大於E 若大於則E成立
	{
		if (a[i] <= i)
			break;
		maxx++;
	}
	cout << maxx << endl;
	system("pause");
	return 0;
}

很簡單的累加,哎喲難死了,這個人怎麼回事拉