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
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии