加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

2010年11月25日 Optimal Services 设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti

(2010-11-25 11:07:52)
标签:

杂谈

Optimal Services

Time Limit:1000MS  Memory Limit:65536K
Total Submit:454 Accepted:328

Description

设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti ,1 ≤ i ≤ n。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。
编程任务:
对于给定的n个顾客需要的服务时间,编程计算最优服务次序。

Input

输入由多组测试数据组成。
每组测试数据输入的第一行是正整数n,表示有n 个顾客。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。

Output

对应每组输入,输出的每行是计算出的最小平均等待时间。

Sample Input

 

10
56 12 1 99 1000 234 33 55 99 812

 

Sample Output

 

532.00
 
#include <iostream>
#include <algorithm>
#define MAX 10001
using namespace std;

bool GY (double a , double b)
{
        return a < b;
}

int main()
{
        int n , j;
        double sum , k , p[ MAX ];

        while (scanf ("%d" , &n) == 1)
        {
                for (j = 1 ; j <= n ; ++ j)
                        scanf ("%lf" , &p[ j ]);

                sort (p + 1 , p + n + 1 , GY);
                k = sum = 0;
                for (j = 1 ; j <= n ; ++ j)
                {
                  sum += k + p[ j ];
                  k += p[ j ];
                }
                printf ("%.2f\n" , sum / n);
        }
        return 0;
}

 

0

阅读 收藏 喜欢 打印举报/Report
前一篇:FAQ是什么意思
后一篇:汽车加油问题
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有