任务描述
设有 n 个顾客同时等待一项服务。顾客i 需要的服务时间为ti ,1 ≤ i ≤ n 。共有 s 处可以提供此项服务。应如何安排 n 个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是 n 个顾客等待服务时间的总和除以 n。
编程任务:
对于给定的 n 个顾客需要的服务时间和 s 的值,编程计算最优服务次序。
数据输入:
输入数据第一行有 2 个正整数 n 和 s,表示有 n 个顾客且有 s 处可以提供顾客需要的服务。接下来的 1 行中,有 n 个正整数,表示 n 个顾客需要的服务时间。 1 ≤ n ≤ 10000
结果输出:
将计算出的最小平均等待时间输出。
注意
输出时请用cout输出!!!
样例输入
10 2 56 12 1 99 1000 234 33 55 99 812
样例输出
336
代码:
#include <bits/stdc++.h>
using namespace std;
#define N 100000
int n,s;
double a[N];
double temp[N];
double calculate2()
{
double sum = 0;
for(int i=0;i<=n;i++)
{
//TODO
temp[i % s] += a[i];
sum += temp[i % s];
}
return sum/n;
}
int main()
{
cin >> n >> s;
for(int i=0;i<=n;i++)
{
//TODO
cin >> a[i];
sort(a,a + n);
cout << calculate2();
return 0;
}
}
搬运请注明出处!