查看原题目请点我
解题思路:我记得我当时上机考这道题的时候特别幸运,因为我根本就没怎么读懂题就拿了24分,只有最后一个测试点那一分没拿到。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=100005;
int arr[maxn]={0};
bool cmp(int a,int b){
return a>b;
}
int main(){
int N;
scanf("%d",&N);
int cnt=0;
for(int i=1;i<=N;i++){
scanf("%d",&arr[i]);
}
sort(arr+1,arr+N+1,cmp);
for(int i=1;i<=N;i++){
if(arr[i]>i) cnt++;
}
printf("%d\n",cnt);
return 0;
}
24分的代码
#include<cstdio>
int main(){
int N;
scanf("%d",&N);
int cnt=0,num;
for(int i=0;i<N;i++){
scanf("%d",&num);
if(num>i+1) cnt++;
}
printf("%d\n",cnt);
return 0;
}