7 1 銀行排隊問題之單佇列多視窗服務(25 分)

2021-08-15 17:40:37 字數 1375 閱讀 9099

假設銀行有k個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。

本題要求輸出前來等待服務的n位顧客的平均等待時間、最長等待時間、最後完成時間,並且統計每個視窗服務了多少名顧客。

輸入格式:

輸入第1行給出正整數n(≤1000),為顧客總人數;隨後n行,每行給出一位顧客的到達時間t和事務處理時間p,並且假設輸入資料已經按到達時間先後排好了順序;最後一行給出正整數k(≤10),為開設的營業視窗數。這裡假設每位顧客事務被處理的最長時間為60分鐘。

輸出格式:

在第一行中輸出平均等待時間(輸出到小數點後1位)、最長等待時間、最後完成時間,之間用1個空格分隔,行末不能有多餘空格。

在第二行中按編號遞增順序輸出每個視窗服務了多少名顧客,數字之間用1個空格分隔,行末不能有多餘空格。

輸入樣例:

9

0 20

1 15

1 61

2 10

10 5

10 3

30 18

31 25

31 2

3

輸出樣例:

6.2 17 61

5 3 1

**如下:

#include

#include

#include

#include

using

namespace

std;

struct person

;struct window

;int main()

cin>>k;

window w[k];

for(i=0; i0;

w[i].num=0;

}int maxwait=0,sumofwait=0,flag=0;

while(!q.empty())

}if(flag==0)//當前顧客選擇最優視窗等待}}

int lasttime=0;

for(i=0;iif(w[i].t1>lasttime)

lasttime=w[i].t1;

}printf("%.1lf",1.0*sumofwait/n);

cout

<<" ";

cout

<" ";

cout

cout

<" ";

cout

<1].num<}

銀行排隊問題之單佇列多視窗服務 (25 分)

假設銀行有k個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。本題要求輸出前來等待服務的n位顧客的平均等待時間 最長等待時間 最後完成時間,並且統計每個視窗服務了多少名顧客。輸...

PTA 銀行排隊問題之單佇列多視窗服務 25分

假設銀行有k個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。本題要求輸出前來等待服務的n位顧客的平均等待時間 最長等待時間 最後完成時間,並且統計每個視窗服務了多少名顧客。輸...

ds佇列 銀行單佇列多視窗模擬

題目 假設銀行有k個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。本題要求輸出前來等待服務的n位顧客的平均等待時間 最長等待時間 最後完成時間。輸入 輸入第1行給出正整數n ...