某汽车轮渡口,过江渡船每次能载10辆车过江,过江车辆分
某汽车轮渡口,过江渡船每次能载10辆车过江,过江车辆分为客车类和货车类。上渡船有如下规定:同类车先到先上船;客车先于货车上船,且每上四辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替;若无货车等待,则允许客车都上船。设计一个算法模拟渡口管理。
答案
from collections import deque def ferrySim(): bus_q = deque() #客车队列 truck_q = deque() #货车队列 while bus_q or truck_q: cnt=0 bus_cnt=0 #渡船最多装10辆 while cnt<10: #满4客车放1货车 if bus_cnt ==4 and truck_q: truck_q.popleft() cnt+=1 bus_cnt=0 elif bus_q: bus_q.popleft() cnt+=1 bus_cnt+=1 elif truck_q: truck_q.popleft() cnt+=1 else: break