Вопрос задан 27.10.2023 в 20:02. Предмет Информатика. Спрашивает Котик Инга.

Окунёмся в суровый и беспощадный мир очереди на приём к врачу в поликлинике. Напишем

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мосолова Екатерина.

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("В очереди никого нет.")


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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:

``` За

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос