您的位置:首页 > 其它

Solution of 1117. Eddington Number(25)

2016-09-13 12:03 225 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: