十四届蓝桥杯STEMA考试Python真题试卷第一套第四题

来源:十四届蓝桥杯STEMA考试Python真题试卷第一套编程第四题
这个程序虽然代码量不大,但综合运用了多种基础算法和数据结构:贪心策略选择窗口、模拟现实过程、线性查找最小值、效率高(时间复杂度为O(N)O(N)O(N))。

题目描述:

编程实现:某服务大厅同时开放 3 个窗口为客户办理业务,窗口编号分别为 1、2、3。
现有 N(2≤N≤50)位客户需要办理业务,客户编号为 1~N,作为办理业务的先后顺序。
起初三个窗口为空闲状态,空闲的窗口会按照客户编号顺序呼叫下一位客户。如果多个窗口同时为空闲状态,按照窗口编号顺序呼叫(1 优先于 2,2 优先于 3)。
现给出每位客户办理业务的时间(单位:分钟),请计算出 N 位客户全部办理完业务后,哪一个窗口合计办理业务的时间最短,并输出最短时间。

例如:N=7,7 位客户编号分别为 1、2、3、4、5、6、7,客户办理业务时间分别为 3、5、2、4、7、1、6,(如下图):

在这里插入图片描述

初始客户编号为 1、2、3 的客户分别在 1、2、3 窗口同时办理业务;
窗口 3 用时 2 分钟办理完 3 号客户的业务,变为空闲状态,并按顺序呼叫 4 号客户,用时 4 分钟;
窗口 1 用时 3 分钟办理完 1 号客户的业务,变为空闲状态,并按顺序呼叫 5 号客户,用时 7 分钟;
窗口 2 用时 5 分钟办理完 2 号客户的业务,变为空闲状态,并按顺序呼叫 6 号客户,用时 1 分钟;
6 分钟后,窗口 2 和 3 同时变为空闲状态,窗口 2 呼叫 7 号客户,用时 6 分钟。
全部客户办理完业务后,三个窗口总用时分别为 10 分钟、12 分钟、6 分钟,用时最短的是窗口 3,最短时间为 6 分钟。

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

输出描述:
输出一个整数,表示客户全部办理完业务,用时最短的窗口所用时间,若有多个窗口总用时最短且相同,输出一个即可

样例输入:
7
3 5 2 4 7 1 6

样例输出:
6

参考答案:
这是一个服务窗口排队问题。我们需要模拟整个服务过程,并追踪每个窗口的总服务时间。

# 读取客户数量
N = int(input())

# 读取每位客户的办理时间并转换为列表
times = list(map(int, input()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值