计算窗口业务办理的最短总用时
类型:程序题

【题目描述】 某服务大厅同时开放 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. 初始 1、2、3 号客户分别在 1、2、3 号窗口同时办理。
  2. 窗口 3 用时 2 分钟办完,变为空闲,呼叫 4 号客户(用时 4 分钟)。
  3. 窗口 1 用时 3 分钟办完,变为空闲,呼叫 5 号客户(用时 7 分钟)。
  4. 窗口 2 用时 5 分钟办完,变为空闲,呼叫 6 号客户(用时 1 分钟)。
  5. 6 分钟后,窗口 2 和 3 同时空闲,按顺序窗口 2 呼叫 7 号客户(用时 6 分钟)。
  6. 全部办理完毕,三个窗口总用时分别为 10、12、6 分钟,最短用时为 6 分钟(窗口 3)。

【输入格式】 第一行输入一个正整数 N(2 ≤ N ≤ 50),表示办理业务的客户数。 第二行输入 N 个正整数(1 ≤ 正整数 ≤ 50),依次表示每位客户办理业务的时间,正整数之间以一个空格隔开。

【输出格式】 输出一个整数,表示客户全部办理完业务后,用时最短的窗口所用时间。

【输入样例1】

7
3 5 2 4 7 1 6

【输出样例1】

6
代码编辑器 加载中...
测试用例(F10) 运行测试(F11) 提交答案(F12)
测试用例输入
{{resultStatus.text}}
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?