PAT 甲级 1117 Eddington Number
https://pintia.cn/problem-sets/994805342720868352/problems/994805354762715136 ? 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?(≤10?5??),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
?
代码: #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; long long a[maxn]; int main() { int n; scanf("%d",&n); for(int i = 1; i <= n; i ++) scanf("%lld",&a[i]); sort(a + 1,a + 1 + n); for(int i = n; i >= 1; i --) { int L = 1,R = n,pos = -1; while(L <= R) { int mid = (L + R) / 2; if(a[mid] > 1LL * i) R = mid - 1,pos = mid; else L = mid + 1; } if(pos == -1) continue; if(n - pos + 1 >= i) { printf("%dn",i); return 0; } } printf("0n"); return 0; } 午睡结束 最近也太爱睡觉了吧? FH? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |