Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Assignment 1

Views: 20
Kernel: Python 3 (Anaconda)
import random import string import copy class Building(): def __init__(self, num_of_floor, num_of_passenger): self.num_of_floor = num_of_floor self.num_of_passenger = num_of_passenger self.passengers = [] #list of all passengers self.random_passengers() # generate random passengers def random_passengers(self): for i in range(self.num_of_passenger): p = Passenger(random.randrange(self.num_of_floor), random.randrange(self.num_of_floor)) #generates an origin and a destination # make sure the origin and destination is different while p.origin == p.destination: p.destination = random.randrange(self.num_of_floor) self.passengers.append(p) #add random passenger to building ########################################################################### class Passenger(): def __init__(self, origin, destination): self.name = "".join(random.choice(string.ascii_uppercase)) +\ "".join(random.choice(string.ascii_lowercase) for _ in range(random.randrange(2, 8))) # a random name for the passenger for console display self.origin = origin self.destination = destination self.deliver = 0 # marker of if the passenger is delivered, 0=undelivered 1=delivered self.cost = 0 # the cost to deliver the passenger def compute_cost(self, movement): self.cost = movement - abs(self.origin - self.destination) print("Drop off", self.name, "at floor", self.destination, "with cost", self.cost) ########################################################################### class Elevator(): def __init__(self, capacity, position=0, direction=1): self.capacity = capacity # max allowed people in the elevator self.position = position # current position of the elevator, defalut to 0 self.movement = 0 # count the total movement of the elevator, used to calculate cost function self.direction = direction # last moving direction of the elevator, 0=down 1=up, default to 1 self.carrying = [] # a collection of passengers currently inside the elevator def move(self): # move one floor following the given direction if self.direction == 1: self.position += 1 else: self.position -= 1 self.movement += 1 # increment the total movement by 1 as the elevator has moved one more step def drop_passenger(self): # go through all passengers on the elevator to check if they reached their destination dropped = [] for key, object in enumerate(self.carrying): if object.destination == self.position: #mark if passenger is at destination floor dropped.append(key) #add passenger to be dropped object.compute_cost(self.movement) if dropped: #removed dropped passengers from elevator self.carrying = [p for ind, p in enumerate(self.carrying) if ind not in dropped] def reverse(self): if self.direction == 1: self.direction = 0 else: self.direction = 1 ########################################################################### # Strategy 1 has 3 principles: # 1. The elevator will always favour its current moving direction. # 2. Unless reached its capacity, the elevator will take all encountered passengers that are going in the same direction. # 3. The elevator will reverse its current moving direction if: # 1. There is no passenger currently inside the elevator. # 2. There is no undelivered passenger in the elevator's current direction def strategy_1(b, e): #inputs a building and an elevator awaiting = copy.copy(b.passengers) #list of passengers in the building e.carrying = [] #reset elevator while len(awaiting) > 0 or len(e.carrying) > 0: #while there are people to be picked up or people to deliver print("The elevator is at", e.position, "carrying", len(e.carrying), "passengers") # at each floor, first check if there is a passenger to drop e.drop_passenger() # if the elevator still has capacity, check if there is passenger to carry if len(awaiting) > 0 and len(e.carrying) < e.capacity: DEL = [] for key, object in enumerate(awaiting): #loop through all waiting passengers in the building if e.position == object.origin: if ((object.destination - object.origin) > 0) == e.direction: # if the elevator is going in the direction the passenger wants to go e.carrying.append(object) #pick up passenger DEL.append(key) # add passenger to be removed from elevator calls print("Picking up", object.name, "at floor", e.position) if len(e.carrying) == e.capacity: break # when capacity is reached, stop checking if there are passengers to pick up (break for loop) if DEL: awaiting = [p for ind, p in enumerate(awaiting) if ind not in DEL] #remove dropped passengers from awaiting list # decide if to reverse if len(e.carrying) == 0: #if the elevator isn't carrying any passengers reverse = 1 #reverse direction unless for object in awaiting: #there are passengers to pick up in the current direction if ((object.origin - e.position) > 0) == e.direction: reverse = 0 break if reverse == 1: e.reverse() # if there's a passenger waiting in the same direction, move one floor; if not, keep the position and re-evaluate if len(e.carrying) > 0 or reverse == 0: e.move() # break in case of infinite loop if e.movement > 10000: break # calculate the total cost total_cost = 0 for _, object in enumerate(b.passengers): print(object.name, "going from floor", object.origin, "to floor", object.destination,"have a cost of", object.cost) total_cost += object.cost print("The total cost is", total_cost) ########################################################################### #Strategy 2: # Elevator goes all the way up and then down and opens door at every floor def strategy_2(b, e): #inputs a building and an elevator awaiting = copy.copy(b.passengers) #list of passengers in the building e.carrying = [] #reset elevator while len(awaiting) > 0 or len(e.carrying) > 0: #while there are people to be picked up or people to deliver print("The elevator is at", e.position, "carrying", len(e.carrying), "passengers") # at each floor, first check if there is a passenger to drop e.drop_passenger() # if the elevator still has capacity, check if there is passenger to carry if len(awaiting) > 0 and len(e.carrying) < e.capacity: DEL = [] for key, object in enumerate(awaiting): #loop through all waiting passengers in the building print(e.position, object.name, object.origin) if e.position == object.origin: e.carrying.append(object) #pick up passenger DEL.append(key) # add passenger to be removed from elevator calls print("Picking up", object.name, "at floor", e.position) if len(e.carrying) == e.capacity: break # when capacity is reached, stop checking if there are passengers to pick up (break for loop) if DEL: awaiting = [p for ind, p in enumerate(awaiting) if ind not in DEL] #remove dropped passengers from awaiting list # decide if to reverse if e.position == b.num_of_floor: #if at the top, go down e.direction = 0 elif e.position == 0: #if on ground floor, go back up e.direction = 1 #move elevator in up or down direction e.move() # break in case of infinite loop if e.movement > 100: break # calculate the total cost total_cost = 0 for _, object in enumerate(b.passengers): print(object.name, "going from floor", object.origin, "to floor", object.destination,"have a cost of", object.cost) total_cost += object.cost print("The total cost is", total_cost) ###########################################################################
building_1 = Building(50, 25) elevator_1 = Elevator(10) strategy_1(copy.copy(building_1), copy.copy(elevator_1)) strategy_2(copy.copy(building_1), copy.copy(elevator_1))
The elevator is at 0 carrying 0 passengers The elevator is at 1 carrying 0 passengers Picking up Cznstf at floor 1 The elevator is at 2 carrying 1 passengers The elevator is at 3 carrying 1 passengers The elevator is at 4 carrying 1 passengers Picking up Ufauht at floor 4 Picking up Husn at floor 4 The elevator is at 5 carrying 3 passengers Picking up Tja at floor 5 The elevator is at 6 carrying 4 passengers Picking up Dsiu at floor 6 The elevator is at 7 carrying 5 passengers The elevator is at 8 carrying 5 passengers Drop off Cznstf at floor 8 with cost 1 The elevator is at 9 carrying 4 passengers Picking up Yzdlc at floor 9 Picking up Vqm at floor 9 The elevator is at 10 carrying 6 passengers The elevator is at 11 carrying 6 passengers Drop off Yzdlc at floor 11 with cost 9 The elevator is at 12 carrying 5 passengers The elevator is at 13 carrying 5 passengers The elevator is at 14 carrying 5 passengers The elevator is at 15 carrying 5 passengers Picking up Gkijabzf at floor 15 The elevator is at 16 carrying 6 passengers Drop off Dsiu at floor 16 with cost 6 The elevator is at 17 carrying 5 passengers Picking up Glf at floor 17 The elevator is at 18 carrying 6 passengers Picking up Wfcsmydb at floor 18 The elevator is at 19 carrying 7 passengers The elevator is at 20 carrying 7 passengers Drop off Wfcsmydb at floor 20 with cost 18 The elevator is at 21 carrying 6 passengers The elevator is at 22 carrying 6 passengers The elevator is at 23 carrying 6 passengers The elevator is at 24 carrying 6 passengers The elevator is at 25 carrying 6 passengers Picking up Rztc at floor 25 The elevator is at 26 carrying 7 passengers Drop off Husn at floor 26 with cost 4 The elevator is at 27 carrying 6 passengers The elevator is at 28 carrying 6 passengers Drop off Tja at floor 28 with cost 5 The elevator is at 29 carrying 5 passengers The elevator is at 30 carrying 5 passengers The elevator is at 31 carrying 5 passengers Drop off Vqm at floor 31 with cost 9 The elevator is at 32 carrying 4 passengers The elevator is at 33 carrying 4 passengers The elevator is at 34 carrying 4 passengers The elevator is at 35 carrying 4 passengers The elevator is at 36 carrying 4 passengers The elevator is at 37 carrying 4 passengers Drop off Rztc at floor 37 with cost 25 The elevator is at 38 carrying 3 passengers The elevator is at 39 carrying 3 passengers Drop off Glf at floor 39 with cost 17 The elevator is at 40 carrying 2 passengers Drop off Gkijabzf at floor 40 with cost 15 The elevator is at 41 carrying 1 passengers The elevator is at 42 carrying 1 passengers The elevator is at 43 carrying 1 passengers Drop off Ufauht at floor 43 with cost 4 The elevator is at 44 carrying 0 passengers The elevator is at 45 carrying 0 passengers The elevator is at 46 carrying 0 passengers The elevator is at 46 carrying 0 passengers Picking up Hnqvtnix at floor 46 The elevator is at 45 carrying 1 passengers Picking up Oxarfv at floor 45 The elevator is at 44 carrying 2 passengers Picking up Kfzfuntv at floor 44 The elevator is at 43 carrying 3 passengers The elevator is at 42 carrying 3 passengers Picking up Hgstxtm at floor 42 The elevator is at 41 carrying 4 passengers Picking up Zfdiyrnb at floor 41 Picking up Ybrt at floor 41 The elevator is at 40 carrying 6 passengers Drop off Zfdiyrnb at floor 40 with cost 51 The elevator is at 39 carrying 5 passengers The elevator is at 38 carrying 5 passengers Picking up Pnrcmqok at floor 38 The elevator is at 37 carrying 6 passengers The elevator is at 36 carrying 6 passengers The elevator is at 35 carrying 6 passengers The elevator is at 34 carrying 6 passengers The elevator is at 33 carrying 6 passengers Picking up Kam at floor 33 The elevator is at 32 carrying 7 passengers The elevator is at 31 carrying 7 passengers The elevator is at 30 carrying 7 passengers The elevator is at 29 carrying 7 passengers Picking up Qmxkgiem at floor 29 The elevator is at 28 carrying 8 passengers Picking up Ycu at floor 28 The elevator is at 27 carrying 9 passengers The elevator is at 26 carrying 9 passengers The elevator is at 25 carrying 9 passengers Picking up Mqi at floor 25 The elevator is at 24 carrying 10 passengers The elevator is at 23 carrying 10 passengers Drop off Kam at floor 23 with cost 59 The elevator is at 22 carrying 9 passengers Picking up Zvgkyy at floor 22 The elevator is at 21 carrying 10 passengers The elevator is at 20 carrying 10 passengers The elevator is at 19 carrying 10 passengers Drop off Ybrt at floor 19 with cost 51 The elevator is at 18 carrying 9 passengers Drop off Mqi at floor 18 with cost 67 The elevator is at 17 carrying 8 passengers Drop off Ycu at floor 17 with cost 64 The elevator is at 16 carrying 7 passengers Drop off Zvgkyy at floor 16 with cost 70 The elevator is at 15 carrying 6 passengers The elevator is at 14 carrying 6 passengers Drop off Oxarfv at floor 14 with cost 47 The elevator is at 13 carrying 5 passengers Drop off Qmxkgiem at floor 13 with cost 63 The elevator is at 12 carrying 4 passengers Picking up Leqgcjsu at floor 12 The elevator is at 11 carrying 5 passengers Drop off Pnrcmqok at floor 11 with cost 54 The elevator is at 10 carrying 4 passengers The elevator is at 9 carrying 4 passengers Drop off Hnqvtnix at floor 9 with cost 46 The elevator is at 8 carrying 3 passengers Drop off Kfzfuntv at floor 8 with cost 48 The elevator is at 7 carrying 2 passengers The elevator is at 6 carrying 2 passengers The elevator is at 5 carrying 2 passengers The elevator is at 4 carrying 2 passengers The elevator is at 3 carrying 2 passengers Drop off Hgstxtm at floor 3 with cost 50 Drop off Leqgcjsu at floor 3 with cost 80 The elevator is at 3 carrying 0 passengers The elevator is at 4 carrying 0 passengers The elevator is at 5 carrying 0 passengers The elevator is at 6 carrying 0 passengers The elevator is at 7 carrying 0 passengers The elevator is at 8 carrying 0 passengers The elevator is at 9 carrying 0 passengers The elevator is at 10 carrying 0 passengers The elevator is at 11 carrying 0 passengers The elevator is at 12 carrying 0 passengers The elevator is at 13 carrying 0 passengers The elevator is at 14 carrying 0 passengers The elevator is at 15 carrying 0 passengers The elevator is at 16 carrying 0 passengers The elevator is at 17 carrying 0 passengers The elevator is at 18 carrying 0 passengers The elevator is at 19 carrying 0 passengers The elevator is at 20 carrying 0 passengers The elevator is at 21 carrying 0 passengers The elevator is at 22 carrying 0 passengers The elevator is at 22 carrying 0 passengers Picking up Yufaok at floor 22 The elevator is at 21 carrying 1 passengers The elevator is at 20 carrying 1 passengers The elevator is at 19 carrying 1 passengers The elevator is at 18 carrying 1 passengers The elevator is at 17 carrying 1 passengers The elevator is at 16 carrying 1 passengers The elevator is at 15 carrying 1 passengers The elevator is at 14 carrying 1 passengers The elevator is at 13 carrying 1 passengers The elevator is at 12 carrying 1 passengers The elevator is at 11 carrying 1 passengers The elevator is at 10 carrying 1 passengers The elevator is at 9 carrying 1 passengers The elevator is at 8 carrying 1 passengers The elevator is at 7 carrying 1 passengers The elevator is at 6 carrying 1 passengers Drop off Yufaok at floor 6 with cost 108 Kfzfuntv going from floor 44 to floor 8 have a cost of 48 Qmxkgiem going from floor 29 to floor 13 have a cost of 63 Ufauht going from floor 4 to floor 43 have a cost of 4 Yzdlc going from floor 9 to floor 11 have a cost of 9 Mqi going from floor 25 to floor 18 have a cost of 67 Zfdiyrnb going from floor 41 to floor 40 have a cost of 51 Kam going from floor 33 to floor 23 have a cost of 59 Pnrcmqok going from floor 38 to floor 11 have a cost of 54 Rztc going from floor 25 to floor 37 have a cost of 25 Cznstf going from floor 1 to floor 8 have a cost of 1 Zvgkyy going from floor 22 to floor 16 have a cost of 70 Yufaok going from floor 22 to floor 6 have a cost of 108 Gkijabzf going from floor 15 to floor 40 have a cost of 15 Ycu going from floor 28 to floor 17 have a cost of 64 Vqm going from floor 9 to floor 31 have a cost of 9 Oxarfv going from floor 45 to floor 14 have a cost of 47 Tja going from floor 5 to floor 28 have a cost of 5 Wfcsmydb going from floor 18 to floor 20 have a cost of 18 Glf going from floor 17 to floor 39 have a cost of 17 Leqgcjsu going from floor 12 to floor 3 have a cost of 80 Dsiu going from floor 6 to floor 16 have a cost of 6 Husn going from floor 4 to floor 26 have a cost of 4 Ybrt going from floor 41 to floor 19 have a cost of 51 Hgstxtm going from floor 42 to floor 3 have a cost of 50 Hnqvtnix going from floor 46 to floor 9 have a cost of 46 The total cost is 971 The elevator is at 0 carrying 0 passengers 0 Kfzfuntv 44 0 Qmxkgiem 29 0 Ufauht 4 0 Yzdlc 9 0 Mqi 25 0 Zfdiyrnb 41 0 Kam 33 0 Pnrcmqok 38 0 Rztc 25 0 Cznstf 1 0 Zvgkyy 22 0 Yufaok 22 0 Gkijabzf 15 0 Ycu 28 0 Vqm 9 0 Oxarfv 45 0 Tja 5 0 Wfcsmydb 18 0 Glf 17 0 Leqgcjsu 12 0 Dsiu 6 0 Husn 4 0 Ybrt 41 0 Hgstxtm 42 0 Hnqvtnix 46 The elevator is at 1 carrying 0 passengers 1 Kfzfuntv 44 1 Qmxkgiem 29 1 Ufauht 4 1 Yzdlc 9 1 Mqi 25 1 Zfdiyrnb 41 1 Kam 33 1 Pnrcmqok 38 1 Rztc 25 1 Cznstf 1 Picking up Cznstf at floor 1 1 Zvgkyy 22 1 Yufaok 22 1 Gkijabzf 15 1 Ycu 28 1 Vqm 9 1 Oxarfv 45 1 Tja 5 1 Wfcsmydb 18 1 Glf 17 1 Leqgcjsu 12 1 Dsiu 6 1 Husn 4 1 Ybrt 41 1 Hgstxtm 42 1 Hnqvtnix 46 The elevator is at 2 carrying 1 passengers 2 Kfzfuntv 44 2 Qmxkgiem 29 2 Ufauht 4 2 Yzdlc 9 2 Mqi 25 2 Zfdiyrnb 41 2 Kam 33 2 Pnrcmqok 38 2 Rztc 25 2 Zvgkyy 22 2 Yufaok 22 2 Gkijabzf 15 2 Ycu 28 2 Vqm 9 2 Oxarfv 45 2 Tja 5 2 Wfcsmydb 18 2 Glf 17 2 Leqgcjsu 12 2 Dsiu 6 2 Husn 4 2 Ybrt 41 2 Hgstxtm 42 2 Hnqvtnix 46 The elevator is at 3 carrying 1 passengers 3 Kfzfuntv 44 3 Qmxkgiem 29 3 Ufauht 4 3 Yzdlc 9 3 Mqi 25 3 Zfdiyrnb 41 3 Kam 33 3 Pnrcmqok 38 3 Rztc 25 3 Zvgkyy 22 3 Yufaok 22 3 Gkijabzf 15 3 Ycu 28 3 Vqm 9 3 Oxarfv 45 3 Tja 5 3 Wfcsmydb 18 3 Glf 17 3 Leqgcjsu 12 3 Dsiu 6 3 Husn 4 3 Ybrt 41 3 Hgstxtm 42 3 Hnqvtnix 46 The elevator is at 4 carrying 1 passengers 4 Kfzfuntv 44 4 Qmxkgiem 29 4 Ufauht 4 Picking up Ufauht at floor 4 4 Yzdlc 9 4 Mqi 25 4 Zfdiyrnb 41 4 Kam 33 4 Pnrcmqok 38 4 Rztc 25 4 Zvgkyy 22 4 Yufaok 22 4 Gkijabzf 15 4 Ycu 28 4 Vqm 9 4 Oxarfv 45 4 Tja 5 4 Wfcsmydb 18 4 Glf 17 4 Leqgcjsu 12 4 Dsiu 6 4 Husn 4 Picking up Husn at floor 4 4 Ybrt 41 4 Hgstxtm 42 4 Hnqvtnix 46 The elevator is at 5 carrying 3 passengers 5 Kfzfuntv 44 5 Qmxkgiem 29 5 Yzdlc 9 5 Mqi 25 5 Zfdiyrnb 41 5 Kam 33 5 Pnrcmqok 38 5 Rztc 25 5 Zvgkyy 22 5 Yufaok 22 5 Gkijabzf 15 5 Ycu 28 5 Vqm 9 5 Oxarfv 45 5 Tja 5 Picking up Tja at floor 5 5 Wfcsmydb 18 5 Glf 17 5 Leqgcjsu 12 5 Dsiu 6 5 Ybrt 41 5 Hgstxtm 42 5 Hnqvtnix 46 The elevator is at 6 carrying 4 passengers 6 Kfzfuntv 44 6 Qmxkgiem 29 6 Yzdlc 9 6 Mqi 25 6 Zfdiyrnb 41 6 Kam 33 6 Pnrcmqok 38 6 Rztc 25 6 Zvgkyy 22 6 Yufaok 22 6 Gkijabzf 15 6 Ycu 28 6 Vqm 9 6 Oxarfv 45 6 Wfcsmydb 18 6 Glf 17 6 Leqgcjsu 12 6 Dsiu 6 Picking up Dsiu at floor 6 6 Ybrt 41 6 Hgstxtm 42 6 Hnqvtnix 46 The elevator is at 7 carrying 5 passengers 7 Kfzfuntv 44 7 Qmxkgiem 29 7 Yzdlc 9 7 Mqi 25 7 Zfdiyrnb 41 7 Kam 33 7 Pnrcmqok 38 7 Rztc 25 7 Zvgkyy 22 7 Yufaok 22 7 Gkijabzf 15 7 Ycu 28 7 Vqm 9 7 Oxarfv 45 7 Wfcsmydb 18 7 Glf 17 7 Leqgcjsu 12 7 Ybrt 41 7 Hgstxtm 42 7 Hnqvtnix 46 The elevator is at 8 carrying 5 passengers Drop off Cznstf at floor 8 with cost 1 8 Kfzfuntv 44 8 Qmxkgiem 29 8 Yzdlc 9 8 Mqi 25 8 Zfdiyrnb 41 8 Kam 33 8 Pnrcmqok 38 8 Rztc 25 8 Zvgkyy 22 8 Yufaok 22 8 Gkijabzf 15 8 Ycu 28 8 Vqm 9 8 Oxarfv 45 8 Wfcsmydb 18 8 Glf 17 8 Leqgcjsu 12 8 Ybrt 41 8 Hgstxtm 42 8 Hnqvtnix 46 The elevator is at 9 carrying 4 passengers 9 Kfzfuntv 44 9 Qmxkgiem 29 9 Yzdlc 9 Picking up Yzdlc at floor 9 9 Mqi 25 9 Zfdiyrnb 41 9 Kam 33 9 Pnrcmqok 38 9 Rztc 25 9 Zvgkyy 22 9 Yufaok 22 9 Gkijabzf 15 9 Ycu 28 9 Vqm 9 Picking up Vqm at floor 9 9 Oxarfv 45 9 Wfcsmydb 18 9 Glf 17 9 Leqgcjsu 12 9 Ybrt 41 9 Hgstxtm 42 9 Hnqvtnix 46 The elevator is at 10 carrying 6 passengers 10 Kfzfuntv 44 10 Qmxkgiem 29 10 Mqi 25 10 Zfdiyrnb 41 10 Kam 33 10 Pnrcmqok 38 10 Rztc 25 10 Zvgkyy 22 10 Yufaok 22 10 Gkijabzf 15 10 Ycu 28 10 Oxarfv 45 10 Wfcsmydb 18 10 Glf 17 10 Leqgcjsu 12 10 Ybrt 41 10 Hgstxtm 42 10 Hnqvtnix 46 The elevator is at 11 carrying 6 passengers Drop off Yzdlc at floor 11 with cost 9 11 Kfzfuntv 44 11 Qmxkgiem 29 11 Mqi 25 11 Zfdiyrnb 41 11 Kam 33 11 Pnrcmqok 38 11 Rztc 25 11 Zvgkyy 22 11 Yufaok 22 11 Gkijabzf 15 11 Ycu 28 11 Oxarfv 45 11 Wfcsmydb 18 11 Glf 17 11 Leqgcjsu 12 11 Ybrt 41 11 Hgstxtm 42 11 Hnqvtnix 46 The elevator is at 12 carrying 5 passengers 12 Kfzfuntv 44 12 Qmxkgiem 29 12 Mqi 25 12 Zfdiyrnb 41 12 Kam 33 12 Pnrcmqok 38 12 Rztc 25 12 Zvgkyy 22 12 Yufaok 22 12 Gkijabzf 15 12 Ycu 28 12 Oxarfv 45 12 Wfcsmydb 18 12 Glf 17 12 Leqgcjsu 12 Picking up Leqgcjsu at floor 12 12 Ybrt 41 12 Hgstxtm 42 12 Hnqvtnix 46 The elevator is at 13 carrying 6 passengers 13 Kfzfuntv 44 13 Qmxkgiem 29 13 Mqi 25 13 Zfdiyrnb 41 13 Kam 33 13 Pnrcmqok 38 13 Rztc 25 13 Zvgkyy 22 13 Yufaok 22 13 Gkijabzf 15 13 Ycu 28 13 Oxarfv 45 13 Wfcsmydb 18 13 Glf 17 13 Ybrt 41 13 Hgstxtm 42 13 Hnqvtnix 46 The elevator is at 14 carrying 6 passengers 14 Kfzfuntv 44 14 Qmxkgiem 29 14 Mqi 25 14 Zfdiyrnb 41 14 Kam 33 14 Pnrcmqok 38 14 Rztc 25 14 Zvgkyy 22 14 Yufaok 22 14 Gkijabzf 15 14 Ycu 28 14 Oxarfv 45 14 Wfcsmydb 18 14 Glf 17 14 Ybrt 41 14 Hgstxtm 42 14 Hnqvtnix 46 The elevator is at 15 carrying 6 passengers 15 Kfzfuntv 44 15 Qmxkgiem 29 15 Mqi 25 15 Zfdiyrnb 41 15 Kam 33 15 Pnrcmqok 38 15 Rztc 25 15 Zvgkyy 22 15 Yufaok 22 15 Gkijabzf 15 Picking up Gkijabzf at floor 15 15 Ycu 28 15 Oxarfv 45 15 Wfcsmydb 18 15 Glf 17 15 Ybrt 41 15 Hgstxtm 42 15 Hnqvtnix 46 The elevator is at 16 carrying 7 passengers Drop off Dsiu at floor 16 with cost 6 16 Kfzfuntv 44 16 Qmxkgiem 29 16 Mqi 25 16 Zfdiyrnb 41 16 Kam 33 16 Pnrcmqok 38 16 Rztc 25 16 Zvgkyy 22 16 Yufaok 22 16 Ycu 28 16 Oxarfv 45 16 Wfcsmydb 18 16 Glf 17 16 Ybrt 41 16 Hgstxtm 42 16 Hnqvtnix 46 The elevator is at 17 carrying 6 passengers 17 Kfzfuntv 44 17 Qmxkgiem 29 17 Mqi 25 17 Zfdiyrnb 41 17 Kam 33 17 Pnrcmqok 38 17 Rztc 25 17 Zvgkyy 22 17 Yufaok 22 17 Ycu 28 17 Oxarfv 45 17 Wfcsmydb 18 17 Glf 17 Picking up Glf at floor 17 17 Ybrt 41 17 Hgstxtm 42 17 Hnqvtnix 46 The elevator is at 18 carrying 7 passengers 18 Kfzfuntv 44 18 Qmxkgiem 29 18 Mqi 25 18 Zfdiyrnb 41 18 Kam 33 18 Pnrcmqok 38 18 Rztc 25 18 Zvgkyy 22 18 Yufaok 22 18 Ycu 28 18 Oxarfv 45 18 Wfcsmydb 18 Picking up Wfcsmydb at floor 18 18 Ybrt 41 18 Hgstxtm 42 18 Hnqvtnix 46 The elevator is at 19 carrying 8 passengers 19 Kfzfuntv 44 19 Qmxkgiem 29 19 Mqi 25 19 Zfdiyrnb 41 19 Kam 33 19 Pnrcmqok 38 19 Rztc 25 19 Zvgkyy 22 19 Yufaok 22 19 Ycu 28 19 Oxarfv 45 19 Ybrt 41 19 Hgstxtm 42 19 Hnqvtnix 46 The elevator is at 20 carrying 8 passengers Drop off Wfcsmydb at floor 20 with cost 18 20 Kfzfuntv 44 20 Qmxkgiem 29 20 Mqi 25 20 Zfdiyrnb 41 20 Kam 33 20 Pnrcmqok 38 20 Rztc 25 20 Zvgkyy 22 20 Yufaok 22 20 Ycu 28 20 Oxarfv 45 20 Ybrt 41 20 Hgstxtm 42 20 Hnqvtnix 46 The elevator is at 21 carrying 7 passengers 21 Kfzfuntv 44 21 Qmxkgiem 29 21 Mqi 25 21 Zfdiyrnb 41 21 Kam 33 21 Pnrcmqok 38 21 Rztc 25 21 Zvgkyy 22 21 Yufaok 22 21 Ycu 28 21 Oxarfv 45 21 Ybrt 41 21 Hgstxtm 42 21 Hnqvtnix 46 The elevator is at 22 carrying 7 passengers 22 Kfzfuntv 44 22 Qmxkgiem 29 22 Mqi 25 22 Zfdiyrnb 41 22 Kam 33 22 Pnrcmqok 38 22 Rztc 25 22 Zvgkyy 22 Picking up Zvgkyy at floor 22 22 Yufaok 22 Picking up Yufaok at floor 22 22 Ycu 28 22 Oxarfv 45 22 Ybrt 41 22 Hgstxtm 42 22 Hnqvtnix 46 The elevator is at 23 carrying 9 passengers 23 Kfzfuntv 44 23 Qmxkgiem 29 23 Mqi 25 23 Zfdiyrnb 41 23 Kam 33 23 Pnrcmqok 38 23 Rztc 25 23 Ycu 28 23 Oxarfv 45 23 Ybrt 41 23 Hgstxtm 42 23 Hnqvtnix 46 The elevator is at 24 carrying 9 passengers 24 Kfzfuntv 44 24 Qmxkgiem 29 24 Mqi 25 24 Zfdiyrnb 41 24 Kam 33 24 Pnrcmqok 38 24 Rztc 25 24 Ycu 28 24 Oxarfv 45 24 Ybrt 41 24 Hgstxtm 42 24 Hnqvtnix 46 The elevator is at 25 carrying 9 passengers 25 Kfzfuntv 44 25 Qmxkgiem 29 25 Mqi 25 Picking up Mqi at floor 25 The elevator is at 26 carrying 10 passengers Drop off Husn at floor 26 with cost 4 26 Kfzfuntv 44 26 Qmxkgiem 29 26 Zfdiyrnb 41 26 Kam 33 26 Pnrcmqok 38 26 Rztc 25 26 Ycu 28 26 Oxarfv 45 26 Ybrt 41 26 Hgstxtm 42 26 Hnqvtnix 46 The elevator is at 27 carrying 9 passengers 27 Kfzfuntv 44 27 Qmxkgiem 29 27 Zfdiyrnb 41 27 Kam 33 27 Pnrcmqok 38 27 Rztc 25 27 Ycu 28 27 Oxarfv 45 27 Ybrt 41 27 Hgstxtm 42 27 Hnqvtnix 46 The elevator is at 28 carrying 9 passengers Drop off Tja at floor 28 with cost 5 28 Kfzfuntv 44 28 Qmxkgiem 29 28 Zfdiyrnb 41 28 Kam 33 28 Pnrcmqok 38 28 Rztc 25 28 Ycu 28 Picking up Ycu at floor 28 28 Oxarfv 45 28 Ybrt 41 28 Hgstxtm 42 28 Hnqvtnix 46 The elevator is at 29 carrying 9 passengers 29 Kfzfuntv 44 29 Qmxkgiem 29 Picking up Qmxkgiem at floor 29 The elevator is at 30 carrying 10 passengers The elevator is at 31 carrying 10 passengers Drop off Vqm at floor 31 with cost 9 31 Kfzfuntv 44 31 Zfdiyrnb 41 31 Kam 33 31 Pnrcmqok 38 31 Rztc 25 31 Oxarfv 45 31 Ybrt 41 31 Hgstxtm 42 31 Hnqvtnix 46 The elevator is at 32 carrying 9 passengers 32 Kfzfuntv 44 32 Zfdiyrnb 41 32 Kam 33 32 Pnrcmqok 38 32 Rztc 25 32 Oxarfv 45 32 Ybrt 41 32 Hgstxtm 42 32 Hnqvtnix 46 The elevator is at 33 carrying 9 passengers 33 Kfzfuntv 44 33 Zfdiyrnb 41 33 Kam 33 Picking up Kam at floor 33 The elevator is at 34 carrying 10 passengers The elevator is at 35 carrying 10 passengers The elevator is at 36 carrying 10 passengers The elevator is at 37 carrying 10 passengers The elevator is at 38 carrying 10 passengers The elevator is at 39 carrying 10 passengers Drop off Glf at floor 39 with cost 17 39 Kfzfuntv 44 39 Zfdiyrnb 41 39 Pnrcmqok 38 39 Rztc 25 39 Oxarfv 45 39 Ybrt 41 39 Hgstxtm 42 39 Hnqvtnix 46 The elevator is at 40 carrying 9 passengers Drop off Gkijabzf at floor 40 with cost 15 40 Kfzfuntv 44 40 Zfdiyrnb 41 40 Pnrcmqok 38 40 Rztc 25 40 Oxarfv 45 40 Ybrt 41 40 Hgstxtm
WARNING: Some output was deleted.