计算机基础知识大赛 4
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 81 测试通过 : 52
总提交 : 81 测试通过 : 52
题目描述
事实上同学们是不会排成整齐的队伍的,现在就有n个人在摊位前围成一团,而且要是不能及时得到服务就会不高兴的。这可让XX有点犯难了,假如每个同学都把需要的服务时间写在脸上,同学 需要的服务时间为 。那么XX以怎样的顺序怎样才能让大家总的等待时间最短。求出最小等待时间。
输入
输入数据包含多组样例,每组包含两行。
第一行为一个整数n
第二行为n个人所需时间(空格隔开)
输出
对于每组样例,输出最小等待时间。
样例输入
3
1 2 3
3
1 2 3
样例输出
10
10
#include<iostream> #include<cstdio> #include<stdlib.h> using namespace std; #include<algorithm> #include<math.h> int comp(const void *a,const void *b) { return *(int*)a-*(int*)b; } int main() { int n; while(scanf("%d",&n)==1) { int a[n],time=0; for(int i=0;i<n;i++) { scanf("%d",&a[i]); time+=a[i]; } qsort(a,n,sizeof(int),comp); for(int i=0;i<n-1;i++) { time+=a[i]*(n-i-1); } printf("%d ",time); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。