蓝桥杯pytho小学组(蓝桥杯pytho组做对多少题可得省一)
导语:小学生蓝桥杯Python闯关 | 排队模拟
学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间。
附上汇总贴:小学生蓝桥杯Python闯关 | 汇总_COCOgsta的博客-CSDN博客
【题目描述】
某服务大厅同时开放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号客户用时4分钟;
窗口1用时3分钟办理完1号客户的业务,变为空闲状态,并按顺序呼叫5号客户,5号客户用时7分钟;
窗口2用时5分钟办理完2号客户的业务,变为空闲状态,并按顺序呼叫6号客户,6号客户用时1分钟;
6分钟后,窗口2和3同时变为空闲状态,按顺序窗口2呼叫7号客户,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())ls = [int(i) for i in input().split()]c1, c2, c3 = 0, 0, 0for time in ls: if c1 <= c2 and c1 <= c3: c1 += time elif c2 < c1 and c2 <= c3: c2 += time else: c3 += timeprint(min(c1, c2, c3))复制代码
【运行结果】
73 5 2 4 7 1 66
本文内容由小碧整理编辑!