1060. 爱丁顿数(25)
2016-10-10 22:30
344 查看
英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”E,即满足有E天骑车超过E英里的最大整数E。据说爱丁顿自己的E等于87。
现给定某人N天的骑车距离,请你算出对应的爱丁顿数E(<=N)。
输入格式:
输入第一行给出一个正整数N(<=105),即连续骑车的天数;第二行给出N个非负整数,代表每天的骑车距离。
输出格式:
在一行中给出N天的爱丁顿数。
输入样例:
10
6 7 6 9 3 10 8 2 7 8
输出样例:
6
思路:这道题刚开始做的时候没有明白 “满足 有E天 骑车超过E英里的最大整数E” ,这句话,以为是从第一天开始往后e天骑车平均值超过e英里,但重点在 有 这个字即所有给出的天数中有e天骑车超过e英里即可。比如就是从所有给出的数中找出有3天超过超过3公里的或5天超过5公里的,e天超过e公里的,,,考虑到这一点,我们将数组排序,从下标1开始依次比较公里数和天数,公里数大于天数就更新e的值即可。
现给定某人N天的骑车距离,请你算出对应的爱丁顿数E(<=N)。
输入格式:
输入第一行给出一个正整数N(<=105),即连续骑车的天数;第二行给出N个非负整数,代表每天的骑车距离。
输出格式:
在一行中给出N天的爱丁顿数。
输入样例:
10
6 7 6 9 3 10 8 2 7 8
输出样例:
6
思路:这道题刚开始做的时候没有明白 “满足 有E天 骑车超过E英里的最大整数E” ,这句话,以为是从第一天开始往后e天骑车平均值超过e英里,但重点在 有 这个字即所有给出的天数中有e天骑车超过e英里即可。比如就是从所有给出的数中找出有3天超过超过3公里的或5天超过5公里的,e天超过e公里的,,,考虑到这一点,我们将数组排序,从下标1开始依次比较公里数和天数,公里数大于天数就更新e的值即可。
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int main(){ int N,d[100005],E=0; scanf("%d",&N); for(int i = 1;i <= N;i++) scanf("%d", d+i); sort(d+1, d+N+1, greater<int>());//第一二个参数是从下标1到下标N排序,第三个参数是从大到小排序 for(int i = 1;i <= N; i++) if(d[i] > i) ++E; printf("%d", E); return 0; }
相关文章推荐
- PAT乙级 1060. 爱丁顿数(25)--数学问题,sort()排序要注意的问题
- 1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25)
- 1060 爱丁顿数(25)
- 1060. 爱丁顿数(25)
- PAT乙级真题1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25) python篇
- C++ - PAT - 1060. 爱丁顿数(25)
- PAT 1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25) PAT
- 1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25)
- PAT (Basic Level) Practise (中文)1060. 爱丁顿数(25)
- PAT乙级 1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25)(C++)
- 1060. 爱丁顿数(25)
- PAT(B) - 1060. 爱丁顿数(25)
- 1060. 爱丁顿数(25)