最优服务次序问题
时间限制(普通/Java) :
1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 141 测试通过 : 50
总提交 : 141 测试通过 : 50
比赛描述
设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti,1 ≤i≤n。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。
对于给定的n个顾客需要的服务时间,编程计算最优服务次序。
输入
第一行是正整数n,表示有n 个顾客。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。
输出
将编程计算出的最小平均等待时间输出。
样例输入
10
56 12 1 99 1000 234 33 55 99 812
样例输出
532.00
提示
undefined
题目来源
NUAA
#include<stdio.h>
#include<algorithm>
int main(){
int n,i;
double a[2000]; //2000是从WA10的教训中试出来的,1000就不行
double sum;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%lf",a+i);
}
std::sort(a,a+n);
sum = (float)a[0];
for(i=1; i<n; i++){
a[i] += a[i-1];
sum += a[i];
}
sum /= n;
printf("%.2lf\n",sum);
}