搜索
写经验 领红包
 > 社会

蓝桥杯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

本文内容由小碧整理编辑!