Вопрос по информатике:
Соревнование лесорубов
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
В Тридевятом царстве завершился чемпионат лесорубов.
Правила определения победителя следующие: победителем считается тот лесоруб, который срубил за сутки наибольшее количество деревьев. А если таких лесорубов несколько, то победителем становится тот из них, кто при этом сделал как можно меньше ударов. Известно, что ни у каких двух лесорубов нет абсолютно одинакового результата.
Требуется написать программу, которая принимает на вход список участников, для каждого из которых задано его имя, а также то, сколько деревьев и за какое суммарное количество ударов он срубил, и выводит имя победителя.
Формат ввода
Первая строка содержит целое число nn ( 1≤n≤1001≤n≤100) – количество соревнующихся лесорубов. Последующие n×2n×2 строк задают лесорубов. Каждый лесоруб задаётся двумя строками: первая содержит имя лесоруба (не более 20 символов, могут встречаться только прописные и строчные буквы латинского алфавита). Гарантируется, что никакое имя не встретится дважды. Вторая строка содержит два целых числа: pipi ( 0≤pi≤150≤pi≤15) и titi ( 0≤ti≤50000≤ti≤5000) – количество срубленных этим лесорубом деревьев и количество сделанных ударов.
Обратите внимание, что список лесорубов не обязан быть отсортированным заранее.
Формат вывода
Ваша программа должна вывести единственную строку – имя лесоруба-победителя.
Пример
Ввод Вывод
4
John
10 123
Ringo
10 144
George
11 156
Paul
11 160
George
Примечания
Решением к данной задаче является программа, написанная на одном из представленных в системе языков программирования. Программа должна считывать данные со стандартного потока ввода (иначе говоря, «с клавиатуры») и выводить ответ в стандартный вывод (иначе говоря, «на экран»).
Выводить лишние символы (исключая пробелы и переводы строк) недопустимо, то есть если вместо ответа будет выведен ответ и после него (или перед ним) какое-то лишнее число или строка, то система ответ не зачтёт.
Перед тем, как отправить написанную Вами программу, не забудьте указать язык программирования, на котором она написана. Выбор языка осуществляется с помощью выпадающего меню, расположенного сразу под этим текстом.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 05.04.2017 05:48
- Информатика
- remove_red_eye 10462
- thumb_up 21
Ответы и объяснения 1
n = int(input())
contestants = []
for _ in range(n):
name = input()
trees, hits = [int(x) for x in input().split()]
contestants.append((name, trees, hits))
print(min(filter(lambda x: x[1] == max(contestants, key=lambda x: x[1])[1], contestants), key=lambda x: x[2])[0])
- 06.04.2017 03:46
- thumb_up 1
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.