解题思路:

注意事项:

参考代码:

#include<stdio.h>

int main()

{

int n,m,i,j,k,y=0,t=0,sum=0;

int a[1010]={0},b[1010]={0};

scanf("%d %d",&n,&m);

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

scanf("%d",&a[i]);

}

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

for(j=2;j<=n;j++){

if(a[j]<a[j-1]){

t=a[j];

a[j]=a[j-1];

a[j-1]=t;

}

}

}

if(n>m){

for(i=1;i<=(n-m);i++){

y++;

b[y]+=b[y];

b[y]+=a[i];

if(y==m){

y=0;}

}

for(k=1;k<=m;k++)

sum+=b[k];

printf("%d\n",sum);

}

else{

printf("0\n");

}

return 0;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

陆勤鑫爷 4年前 回复TA
b[y]+=b[y];

b[y]+=a[i];
这里有问题,因为并不一定完全按从小到大顺序一层一层覆盖,如果第一个水龙头有3个人,第二个水龙头有2个人,但第一个水龙头总时间要小于第二个水龙头,那么下一个人还是要去第一个水龙头打水,所以你要把每个水龙头目前的总时间先做一个比较,选出总时间最小的,再加入元素。