题解 P2777 【[AHOI2016初中组]自行车比赛】

· · 题解

模拟,扫一遍,与第一名判断。

贪心,如果第一名得一分,第i名得n分,第i名超过了第一名,ans++

虽然ac了,但第二个测试点并不能过。

#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n,ans,a[300001];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",a+i);
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++)
        if(a[i]+n>=a[n]+1)
            ans++;
    printf("%d\n",ans);
    return 0;
}