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;
}① 处应填( ) 。
选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题