设有n 个顾客同时等待一项服务。顾客i需要的服务时间为t i,1≤i≤n。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。
对于给定的n 个顾客需要的服务时间,计算最优服务次序。
输入:
输入数据的第一行是正整数n(n≤1000),表示有n 个顾客。接下来的1行中,有n 个正整数,表示n 个顾客需要的服务时间。
输出:
输出一个实数,保留2位小数,表示计算出的最小平均等待时间。
示例输入:
10
56 12 1 99 1000 234 33 55 99 812
示例输出:
532.00
分析 :最短服务时间优先
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
vector<int> a;
int x;
for(int i=0;i<n;i++){
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
for(int i=1;i<n;i++){
a[i]+=a[i-1];
}
double sum=0;
for(int i=0;i<n;i++){
sum+=a[i];
}
sum=sum/n;
cout<<sum;
}