M. Первому игроку приготовиться 2.0

Во многих играх порядок ходов определяется броском кубика или монетки, а в нашей первым ходит тот, чье имя лексикографически меньше. Определите, кто из игроков будет ходить первым.

Формат ввода

В первой строке записано одно натуральное число N — количество игроков.
В каждой из последующих N строк указано одно имя игрока.

Формат вывода:

Имя игрока, который будет ходить первым.

Пример

Ввод

3
Вова
Аня
Боря

Вывод

Аня

Ввод

4
Толя
Коля
Вася
Юля

Вывод

Вася

Решение

Одна из проблем поиска максимального или минимального значения — проблема выбора первого элемента. Обычно это или минимально или максимально возможное значение.

Для положительных чисел при поиска максимума это может быть 0 или даже -1. Для строк при поиске минимума среди русских слов — ‘яяяяяяяяя’ (подумайте почему).

Но, что если нам надо найти минимальное число среди последовательности любых чисел? Какое бы начальное «максимальное» значение мы не выбрали, всегда может найтись последовательность, где все числа будут больше чем выбранное нами значение. Аналогично и с минимальным. Какое бы большое число мы не выбрали, всегда найдется последовательность, где все элементы будут больше этого числа.

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

Второе решение демонстрирует именно этот подход. Несмотря на то, что он кажется чуть более сложным, он очень важен, так как демонстрирует примем программирования, известный под условным названием «использование флага». Суть приема заключается в том, что вы устанавливаете какое-то значение, которое является индикатором наступления какого-то события (в нашем случае пустоту начального значения для сравнения) и если переменная «пустая» то можно выполнить то или иное действие, попутно изменив ее значение, в случае, если поменялись условия. Мы еще встретимся с этим приемом в более поздних задачах.

Посмотреть код

Решение

Python
count = int(input())

first = 'яяяяяяяя'

for _ in range(count):
    name = input()
    if name < first:
        first = name

print(first)

Решение

Python
# пример использования пустого значения для инициализации минимального значения

count = int(input())

first = ''

for _ in range(count):
    name = input()
    if first == '':
        first = name
    elif name < first:
        first = name

print(first)
Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Ильгиз
Ильгиз
28.10.2025 09:03

Доброго времени суток! Помогите, пожалуйста, разобраться в вопросах ниже:
1) ‘яяяяяяяя’ и просто ‘я’ по UTF-8 это тоже самое?
| 1103 | U+044F | D1 8F | я | Cyrillic Small Letter Ya |

2) for _ — что означает нижнее подчёркивание у цикла for? Умышленное отсутствие переменной для работы цикла?

3) first = ‘ ‘ — что означает пустые кавычки у переменной first? Переменная с пустым, неизвестным значением?

Последний раз редактировалось 12 дней назад Ильгиз ем
Ильгиз
Ильгиз
Ответить на  Сергей Клочко
29.10.2025 14:26

Большое спасибо, Сергей, за ваши ответы!)