Помогите с задачей на python, срочно!
Фердинанд вышел на людную улицу.
Был он тут, разумеется, не впервые. Но сегодня он смотрел на все другими глазами. Раньше он бежал, опустив нос к земле. И при этом неизвестно во имя чего – упускал возможность увидеть самое интересное. Теперь он шел, величественно подняв голову, и, уж, конечно, видел не меньше, чем видят хозяин и хозяйка, когда выходят на прогулку. Он видел высокие дома, деревья, которые, как он теперь выяснил, состоят не только из ствола, но и из пышной кроны, видел фонари с матовыми шарами и голубое небо, по которому плывут курчавые облака.
Напишите программу, выбирающую из окружающих видов всё, что выше собачьего роста, и выводящего в заданном порядке.
Формат ввода
В первой строке вводится собачий рост, в следующих вводятся строки вида:
предмет и его высота через &&, окружённые пробелами.
Формат вывода
Нужно вывести предметы, высота которых больше собачьего роста, в порядке увеличения длины строки предмета, а в случае одинаковой – в обратном алфавитном порядке.
Пример
Ввод:
8
Central Park && 10
Fence && 4
Hangar && 13
Arch && 8
Oak Tree && 9
Tower && 12
Pavilion && 12
Вывод:
Tower
Hangar
Pavilion
Oak Tree
Central Park
# Считываем входные данные
import sys
input = sys.stdin.read
# Чтение данных
data = input().strip().split('\n')
# Рост собаки
dog_height = int(data[0])
# Список для хранения подходящих предметов
items = []
# Обработка входных данных
for line in data[1:]:
# Разделяем строку по "&&"
item, height = line.split('&&')
# Убираем лишние пробелы
item = item.strip()
height = int(height.strip())
# Если высота предмета больше роста собаки, добавляем в список
if height > dog_height:
items.append(item)
# Сортировка по длине строки, затем в обратном алфавитном порядке для одинаковой длины
sorted_items = sorted(items, key=lambda x: (len(x), -ord(max(x) if x else '')))
# Вывод результата
for item in sorted_items:
print(item)
Секунду