
Окунёмся в суровый и беспощадный мир очереди на приём к врачу в поликлинике. Напишем
программу-медсестру, которая поможет врачу определить, кто следующий проходит к нему в кабинет. Изначально в очереди никого нет. Далее в каком-то порядке происходят события трёх типов: фраза «Кто последний? Я - <фамилия>.» означает, что пришёл новый пациент и встал в конец очереди; фраза «Я только спросить! Я - <фамилия>.» означает, что пришёл новый пациент и встал в начало очереди; фраза «Следующий!» означает, что доктор готов принять первого пациента в очереди. В последнем случае нужно вывести «Заходит <фамилия>!» или «В очереди никого нет.» На психологическую достоверность данная модель очереди, конечно, не претендует: в жизни такое нахальство с «я только спросить» прощается далеко не всегда. Формат ввода На первой строке вводится натуральное число N — количество событий. Далее следуют N строк описанного в условии формата. Формат вывода Выводится несколько строк, по одной на каждое «Следующий!» в вводе, в соответствии с условием в порядке общей очереди. Пример Ввод 7 Кто последний? Я - Кузнецов. Кто последний? Я - Поливанов. Следующий! Я только спросить! Я - Иванова. Следующий! Следующий! Следующий! вывод Заходит Кузнецов! Заходит Иванова! Заходит Поливанов! В очереди никого нет. питон

Ответы на вопрос

Python 3.7.0
Лови, прикрепил фото с результатами, посмотри(т.е сразу выводит, после "следующий")
count = int(input("Количество событий: "))
queue = [] # очередь
for i in range(count):
event = input()
if "Кто последний?" in event:
queue.append(event[19:len(event) - 1])
if "Я только спросить!" in event:
queue.insert(0, event[23:len(event) - 1])
if "Следующий!" in event:
if queue:
print("Заходит " + queue.pop(0) + "!")
else:
print("В очереди никого нет.")




To solve this problem, we can use a queue data structure to represent the order of patients in the clinic. Each time a new event occurs, we can update the queue accordingly. Here's an example of how we can implement this program in Python:
```python from collections import deque
def process_queue(events): queue = deque() for event in events: if event.startswith("Кто последний?"): _, name = event.split("Я - ") queue.append(name.strip()) elif event.startswith("Я только спросить!"): _, name = event.split("Я - ") queue.appendleft(name.strip()) elif event == "Следующий!": if queue: print("Заходит", queue.popleft() + "!") else: print("В очереди никого нет.") else: print("Invalid event:", event)
# Example input events = [ "Кто последний? Я - Кузнецов.", "Кто последний? Я - Поливанов.", "Следующий!", "Я только спросить! Я - Иванова.", "Следующий!", "Следующий!", "Следующий!" ]
process_queue(events) ```
This program uses the `deque` class from the `collections` module to represent the queue. The `append` method is used to add a patient to the end of the queue, and the `appendleft` method is used to add a patient to the beginning of the queue. The `popleft` method is used to remove and return the first patient in the queue.
Running this program with the example input will produce the following output:
``` За


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili