计算窗口业务办理的最短总用时
【题目描述】 某服务大厅同时开放 3 个窗口为客户办理业务,窗口编号分别为 1、2、3。
现有 N(2 ≤ N ≤ 50)位客户需要办理业务,客户编号为 1~N,作为办理业务的先后顺序。起初三个窗口为空闲状态,空闲的窗口会按照客户编号顺序呼叫下一位客户。如果多个窗口同时为空闲状态,按照窗口编号顺序呼叫(1 优先于 2,2 优先于 3)。
现给出每位客户办理业务的时间(单位:分钟),请计算出 N 位客户全部办理完业务后,哪一个窗口合计办理业务的时间最短,并输出最短时间。
示例说明: N=7,7 位客户办理业务时间分别为:3、5、2、4、7、1、6,对应窗口办理情况如下:
| 客户用时\窗口编号 | 1 号窗口 | 2 号窗口 | 3 号窗口 |
|---|---|---|---|
| 初始分配 | 3 分钟(1 号客户) | 5 分钟(2 号客户) | 2 分钟(3 号客户) |
| 后续分配 | 7 分钟(5 号客户) | 1 分钟(6 号客户) | 4 分钟(4 号客户) |
| 后续分配 | — | 6 分钟(7 号客户) | — |
| 合计用时 | 10 分钟 | 12 分钟 | 6 分钟 |
办理过程说明:
- 初始 1、2、3 号客户分别在 1、2、3 号窗口同时办理。
- 窗口 3 用时 2 分钟办完,变为空闲,呼叫 4 号客户(用时 4 分钟)。
- 窗口 1 用时 3 分钟办完,变为空闲,呼叫 5 号客户(用时 7 分钟)。
- 窗口 2 用时 5 分钟办完,变为空闲,呼叫 6 号客户(用时 1 分钟)。
- 6 分钟后,窗口 2 和 3 同时空闲,按顺序窗口 2 呼叫 7 号客户(用时 6 分钟)。
- 全部办理完毕,三个窗口总用时分别为 10、12、6 分钟,最短用时为 6 分钟(窗口 3)。
【输入格式】 第一行输入一个正整数 N(2 ≤ N ≤ 50),表示办理业务的客户数。 第二行输入 N 个正整数(1 ≤ 正整数 ≤ 50),依次表示每位客户办理业务的时间,正整数之间以一个空格隔开。
【输出格式】 输出一个整数,表示客户全部办理完业务后,用时最短的窗口所用时间。
【输入样例1】
7
3 5 2 4 7 1 6
【输出样例1】
6 本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析