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 8Sample Output:
6
----------------------------------------------------------
“E -- that is, the maximum integer E such that it is for E days that one rides more than E miles.”
个人感觉读懂这个长难句比做题目本身还难.....
其实题目很简单,那例子来说,输出6的理由是:这N个数里有6个数比6大,所以E=6..(且E要尽可能地大)
AC代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
int main()
{
freopen("in.txt","r",stdin);
int N,N1;
cin>>N;
N1=N;
vector<int> a;
while(N1--)
{
int t;
cin>>t;
a.push_back(t);
}
sort(a.begin(),a.end());
int i;
for(i=N;i>=1;i--)
{
if(i<a[N-i])
break;
}
printf("%d",i);
return 0;
}
------------------
笔记:
1.一开始犯了很常犯的一个错误...把N直接用10进去了....
本文介绍了一个关于自行车骑行里程的算法问题——EddingtonNumber。该问题要求找到连续骑行天数中,超过某特定距离的最多天数。文章通过一个示例详细解释了解决方案,并提供了AC代码。
2687

被折叠的 条评论
为什么被折叠?



