solution1(测试点5不通过)
所谓“E天骑行超过E公里”,注意没有要求是第E天
对于直接判断变成了第E天骑行距离超过E公里,曲解了题意
例如对于
3
1 2 3
输出为1
第1天骑行3公里,满足条件;第2天骑行2公里,不满足超过的条件,最大的e为1
#include<iostream>
using namespace std;
int main(){
int n, cnt = 0, x;
scanf("%d", &n);
for(int i = 1; i <= n; i++){
scanf("%d", &x);
if(x > i) cnt++;
}
printf("%d", cnt);
return 0;
}
solution2
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a, int b){
return a > b;
}
const int maxn = 1e5 + 10;
int a[maxn];
int main(){
int n, cnt = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++){
scanf("%d", a + i);
}
sort(a + 1, a + n + 1, cmp);
for(int i = 1; i <= n; i++){
if(i < a[i]) cnt++;
}
printf("%d", cnt);
return 0;
}