1. 程式人生 > >演算法分析與設計之多處最優服務次序問題

演算法分析與設計之多處最優服務次序問題

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;

int main()
{
    int i,n,j,k,minx;
    int s;
    double t;
    int a[10005],b[1005];
    while(cin>>n>>s) // 輸入顧客數量和可供等待的工位 
    {
        for(i=0; i<n; i++)
            cin
>>a[i]; //輸入顧客使用時間陣列 sort(a,a+n); //將陣列從小到大排序 memset(b,0,sizeof(b)); // 將b中的陣列初始化為0 for(i=0; i<n; i++) //遍歷顧客的等待時間 { minx=0x7fffffff; //定義一個非常大的數 k=0; // for(j=0; j<s; j++) //有幾個工位 進行幾次迴圈 { if(minx>b[j]) //
這個和上個小的進行對比 { minx=b[j]; //記錄小的 k=j; //記錄小的對應的工位 } } b[k]+=a[i]; // b[k] = b[k] + a[i] 記錄每個工位的總時間 a[i]=b[k]; // 把每個工位的時間賦給對應顧客 形成 顧客總時間陣列 } t=0; for(i=0; i<n; i++) // 計算顧客平均等待時間
t+=a[i]; t/=n; printf("%d\n",(int)(t)); } return 0; }