测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A22575. 最大平均分小明按顺序做了n道题目,第1道题目的得分a[1]为一个0到10000之间的整数,将这n道题的最低得分去掉,取剩下的题目的得分的平均分作为最终成绩。小明想要最终成绩尽可能高,他可以去掉前k(1≤k≤n-2)道题目,只做并计算后面的n-k道题目的最终成绩,小明想知道所有的可以使得他获得最高的最终成绩的k的值,如果有多个k 则从小到大输出。数据范围满足1≤n≤105,0≤a[1]≤104。提…

单选题 较易

题目描述

最大平均分

小明按顺序做了n道题目,第1道题目的得分a[1]为一个0到10000之间的整数,将这n道题的最低得分去掉,取剩下的题目的得分的平均分作为最终成绩。

小明想要最终成绩尽可能高,他可以去掉前k(1≤k≤n-2)道题目,只做并计算后面的n-k道题目的最终成绩,小明想知道所有的可以使得他获得最高的最终成绩的k的值,如果有多个k 则从小到大输出。

数据范围满足1≤n≤105,0≤a[1]≤104

提示:可以利用后缀和与后缀最小值模拟计算。

试补全程序。

#include < iostream>
using namespace std;
const int N = 2e5+5;
int a[N],n, suf[N], minn[N];
int ans[N];
int main(){
    ios:: sync   with   stdio(0); cin. tie(0), cout. tie(0);
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    minn[n+1]=1e9;
    for(int i=n;i>=1;i--) {
        ______①______  ;
        ______②______ ;
    }
    double maxn=-1;
    int cnt=0;
    for(int i=1;i<=  ______③______  ;i++) {
        double tmp=  ______④______  ;
        if(tmp== maxn) {
            ans[++ cnt]=1;
        } else if(tmp> maxn) {
            maxn= tmp;
            ______⑤______  ;
            ans[++ cnt]=i;
        }
    }
    for(int i=1; i<= cnt; i++) cout<< ans[i]<<'\n';
    return 0;
}

① 处应填(    ) 。

选项(单选)

上一题 下一题