不是VIP会员,不能显示答案

题目解答

题目:
(贪心)你用过QQ吗?在QQ群里,管理员可以禁言用户。

在Boboniu的QQ群里,小D每天都开Boboniu的玩笑。

小D会在群里待n天,Boboniu的心情是m。在第i天,如果小D没被禁言,他会开一个严重程度为ai的玩笑;如果开的玩笑严重程度大于m,他就会被Boboniu禁言d天,也就是说,在第i+1,i+2,...,min(i+d,n)天,他都会被禁言。

你可以将序列a重排,求开的所有玩笑的严重程度之和的最大值。

[输入]

第一行是n,d,m,之后一行n个整数ai。

1 ≤d≤n≤=10^5,0≤m≤10^9 ,0≤a≤10^9。

提示:贪心。

试补全程序。

# include <bits/stdc++.h>

using namespace std;



const int MAXN= 1e5 + 5;



int big[MAXN], small[MAXN], sum[MAXN];

int p1=1,p2=1;

int n,m,k,x;



int main() {

cin>> n>> m>> k;

for(int i=1; i<=n; i++) {

cin>>x;

if(x <= k) {

___(1)___;

} else {

big[p2++]=x;

}

}

sort(small+1, small+1+ p1,greater<int>());

sort(big+ 1, big+1 + p2, greater<int>());

for(int i=1; i<=p1; i++) {

___(2)___;

}

int ans= sum[p1], cur = 0;

for(int i=1; i<= p2; i++) {

cur+= ___(3)___;

int days =___(4)___+1;

if(days>n) {

break;

}

int left = min(n-days, p1);

ans=max(ans,___(5)___);

}

cout<< ans<< endl;

return 0;

}




选择题

1) ⑴处应填( )

2) ⑵处应填( )

3) ⑶处应填( )

4) ⑷处应填( )

5) ⑸处应填( )
考点:
分析:
解答:
评论:
老师: