设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n个顾客等待直到完成服务的时间总和除以n。
编程任务:
对于给定的n个顾客需要的服务时间,编程计算最优服务次序。
输入
测试数据第一行是正整数n(n<=1000),表示有n个顾客。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间ti(ti<=1000)。
输出
输出最小平均等待时间,每个答案一行,保留2位小数。
样例输入
10
56 12 1 99 1000 234 33 55 99 812
样例输出
532.00
#include<stdio.h>
int main()
{
int n,i,j;
float a[100],b[100],t,x,y;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%f",&a[i]);
}
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=1;i<n;i++){//每个位置累加前面到自己
a[i]+=a[i-1];
}
for(j=0;j<n;j++)//加起来
x+=a[j];
y=x/n;
printf("%.2f ",y);
}