Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ticket_ppp = 5 # ticket price per person
- capacity = int(input())
- busy_seats = 0
- total_discount = 0
- seats_are_exhausted = False
- user_stopped_adding_persons = False
- while True:
- user_input = input()
- if user_input == "Movie time!":
- # Причината, поради която спираме потребителския вход тук,
- # е че потребителя в въвел командата за край "Movie time!"
- # Запомняме този факт:
- user_stopped_adding_persons = True
- break
- persons_to_enter = int(user_input) # Брой хора, които искат да влязат
- if busy_seats + persons_to_enter > capacity: # Няма място за толкова хора
- # По условие:
- # "Ако в залата се опитат да влязат повече хора от колкото места са останали,
- # то се счита че местата са изчерпани и програмата трябва да приключи четенето на вход."
- # На мен това "ако се опитат да влязат" ми звучи като че тия дето искат да влязат,
- # ако няма място за тях всичките, следва да им бъде отказано на всичките,
- # и да не питаме за още желаещи
- # Затова дирекно излизаме, без да увеличаваме броя на заетите места
- # Така незаетите ще си останат незаети.
- # Искат също да си отбележим, че местата са изчерпани (дори ако все още има някакви свободни)
- seats_are_exhausted = True
- break
- # В тази точка имаме места хората дето искат да влязат
- persons_to_enter_tickets_price = persons_to_enter * ticket_ppp
- # В условието не ми стана ясно кое трябва да се провери дали се дели на 3 без остатък:
- # Дали броя на хората, които искат да влязат persons_to_enter,
- # дали вече заетите места busy_seats,
- # дали сумата им persons_to_enter + busy_seats.
- # Но като гледам обяснението в първия примерен вход, искат да е persons_to_enter:
- if persons_to_enter % 3 == 0: # Дели се на 3 без остатък
- total_discount += 5
- busy_seats += persons_to_enter # Добавяме заети места за новите хора
- empty_seats = capacity - busy_seats
- cinema_income = (busy_seats * ticket_ppp) - total_discount
- if user_stopped_adding_persons:
- print(f"There are {empty_seats} seats left in the cinema.")
- if seats_are_exhausted:
- print("The cinema is full.")
- # Може да се спори, че понеже възможните причини за край са само две:
- # или юзъра е казал "Movie Time!":
- # -- тогава user_stopped_adding_persons==True и seats_are_exhausted==False
- # или юзъра се е опитал да пусне повече хора, отколкото места има:
- # -- тогава user_stopped_adding_persons==False и seats_are_exhausted==True
- # Затова вместо горните 2 независими if-a,
- # може да се навържат с if-elif:
- #if user_stopped_adding_persons:
- # print(f"There are {empty_seats} seats left in the cinema.")
- #elif seats_are_exhausted:
- # print("The cinema is full.")
- # Или пък с if/else (тогава едната променлива е достатъчна, другата е излишна:
- #if user_stopped_adding_persons:
- # print(f"There are {empty_seats} seats left in the cinema.")
- #else:
- # print("The cinema is full.")
- #
- # Аз обаче се чувствам по-добре if-овете да са независими
- # Може и да не е оптимално, но ми стои по-ясно
- print(f"Cinema income - {cinema_income} lv.")
Add Comment
Please, Sign In to add comment