Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2021 16:28:41

NaTalya12345
Зарегистрирован: 2021-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

Здравствуйте, уважаемые знатоки. Я - мама начинающего программера. Дочь бьётся над этими двумя задачами уже много времени, но её решения не работают. Помогите, пожалуйста. Сегодня нужно решение до 23 часов. Очень верю, что поможете. Спасибо!
1 задача
Очередь с поддержкой минимума
Реализуйте очередь с поддержкой минимума.

Входные данные

Первая строка входных данных содержит число n — количество операций с очередью. В каждой следующей строке содержится число ai (0≤ai≤10000). Если ai>0, то это число необходимо добавить в очередь. Если ai=0, то это запрос на удаление элемента из очереди.

Выходные данные

На каждый запрос удаления элемента из очереди необходимо вывести значение минимального элемента очереди (учитывая значение удаляемого элемента). Если запрос удаления вызывается на пустой очереди, то необходимо вывести −1.

Примеры
Ввод 1
9
5
4
3
6
0
0
0
0
0
Вывод
3
3
3
6
-1

2 задача
Очередь с защитой от ошибок
Реализуйте структуру данных “очередь”. Напишите программу, содержащую описание очереди и моделирующую работу очереди, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:

push n — добавить в очередь число n (значение n задаётся после команды). Программа должна вывести ok;
pop — удалить из очереди первый элемент. Программа должна вывести его значение;
front — программа должна вывести значение первого элемента, не удаляя его из очереди;
size — программа должна вывести количество элементов в очереди;
clear — программа должна очистить очередь и вывести ok;
exit — программа должна вывести bye и завершить работу.
Перед исполнением операций front и pop программа должна проверять, содержится ли в очереди хотя бы один элемент. Если во входных данных встречается операция front или pop и при этом очередь пуста, то программа должна вместо числового значения вывести строку error.

Входные данные

Вводятся команды управления очередью, по одной команде в строке. Среди них обязательно присутствует команда exit.

Выходные данные

Требуется вывести протокол работы очереди, по одному сообщению в строке.

Примеры
Ввод 1
push 1
front
exit
Вывод
ok
1
bye
Ввод 2
size
push 1
size
push 2
size
push 3
size
exit
Вывод
0
ok
1
ok
2
ok
3
bye

Отредактировано NaTalya12345 (Окт. 9, 2021 16:56:41)

Офлайн

#2 Окт. 9, 2021 21:18:51

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

NaTalya12345
Сегодня нужно решение до 23 часов
а что будет после 23 часов?

Офлайн

#3 Окт. 9, 2021 22:13:07

NaTalya12345
Зарегистрирован: 2021-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

Карета превратится в тыкву)

Офлайн

#4 Окт. 9, 2021 22:13:13

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

 n = int(input())
input_data = []
out_data = []
for i in range(n):
	data = int(input())
	if data > 0:
		input_data.append(data)
	else:
		if not input_data:
			out_data.append(-1)
		else:
			out_data.append(min(input_data))
			input_data.pop(0)
for i in out_data:
	print(i)

 9
5
4
3
6
0
0
0
0
0
3
3
3
6
-1
Process finished with exit code 0

Офлайн

#5 Окт. 9, 2021 22:20:25

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

NaTalya12345
Дочь бьётся над этими двумя задачами уже много времени, но её решения не работают
Может лучше понять почему ее решения не работают?Вы можете проверять мои решения,но ваша дочь от этого не научиться.

Офлайн

#6 Окт. 9, 2021 22:26:09

NaTalya12345
Зарегистрирован: 2021-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

xam1816
Если бы было так просто. Вы абсолютно правы. Но Сириус не показывает ошибку. Просто не принимает ответы. Причем, в программе всё верно, а на платформе не получается

Офлайн

#7 Окт. 9, 2021 22:28:33

NaTalya12345
Зарегистрирован: 2021-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

xam1816
Программа выполнялась слишком долго и была прервана
И никаких объяснений

Офлайн

#8 Окт. 9, 2021 22:32:31

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

NaTalya12345
Программа выполнялась слишком долго и была прервана
это у моего решения?

Офлайн

#9 Окт. 9, 2021 22:58:42

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

 memory = []
out = []
while True:
	command = input()
	if command == 'exit':
		out.append('bye')
		break
	elif 'push' in command:
		n = command.split(' ')[1]
		memory.append(n)
		out.append('ok')
	elif command == 'pop':
		if memory:
			out.append(memory.pop(0))
		else:
			out.append('error')
	elif command == 'front':
		if memory:
			out.append(memory[0])
		else:
			out.append('error')
	elif command == 'size':
		out.append(len(memory))
	elif command == 'clear':
		memory.clear()
		out.append('ok')
for i in out:
	print(i)

Офлайн

#10 Окт. 9, 2021 22:58:58

NaTalya12345
Зарегистрирован: 2021-10-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Срочная помощь, пожалуйста 🙏

xam1816
Да

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version