Solution of 1117. Eddington Number(25)

来源:互联网 发布:网络推广专员 编辑:程序博客网 时间:2024/05/02 02:09

1117. Eddington Number(25)

British astronomer Eddington liked to ride a bike. It is said that in order to show off his skill, he has even defined an “Eddington number”, E – that is, the maximum integer E such that it is for E days that one rides more than E miles. Eddington’s own E was 87.

Now given everyday’s distances that one rides for N days, you are supposed to find the corresponding E (<=N).

Input Specification:

Each input file contains one test case. For each case, the first line gives a positive integer N(<=105), the days of continuous riding. Then N non-negative integers are given in the next line, being the riding distances of everyday.

Output Specification:

For each case, print in a line the Eddington number for these N days.

Sample Input:
10
6 7 6 9 3 10 8 2 7 8
Sample Output:
6


结题思路 :
题意要求我们输出E天里每天骑行超过E公里的最大的E。
要求:有点坑的地方在于下例的一个case:

#输入:8#88776632#此时你会发现有6天骑行超过了5,但5依然是可行解,因为也有6天里面随便5天骑行都超过了5。

程序步骤:
第一步、保存数据,排序;
第二步、输出问询的结果,并将有记录的同学标记取负。


具体程序(AC)如下:

#include <iostream>#include<algorithm>#include<vector>using namespace std;int main(){    int n,index = 0;    cin>>n;    vector<int> a(n);    for(int i = 0; i < n; i++)        cin>>a[i];    sort(a.begin(), a.end());    for(int i = 0; i < n; i++)        if(a[i] > n-i)        {            index = n - i;            break;        }    cout<<index<<endl;    return 0;}
1 0