Top.Mail.Ru
Ответы
Аватар пользователя
5 месяцев назад
от

Олимпиада информатика 2024 нальчик 8 класс, на языке паскаля/ питон

Задача A. Баскетболист года



Максимальное время работы на одном тесте:

1 секунда

Максимальный объем используемой памяти:

64 мегабайта





Внимание, горячие новости из мира спорта!

Только что стало известно, что составлен список из N лучших баскетболистов прошедшего года. Попытаемся выяснить, есть ли среди них те, кто по праву может называться результативными игроками. Баскетболист будет называться результативным, если он забросил в корзину более N / 2 раз мяч.

Пока что мы не можем назвать их имена, но наш спортивный комментатор не был бы самим собой, если бы не попытался это выяснить.

Мы будем следить за развитием событий и обязательно сообщим вам, когда появится информация о результативных игроках. А пока вы можете проверить свою интуицию и определить, кто же станет настоящим героем этого года и определить, есть ли в этом списке результативный игрок, и если есть, то распечатать его фамилию.



Формат входных данных

Первая строка входного файла должна содержать число N (количество фамилий). Остальные N строк должны содержать список фамилий игроков.

Формат выходных данных

Программа должна вывести в выходной файл фамилию самого результативного игрока, если такого нет, то вывести сообщение No

Пример



Ввод

Вывод

5

Demidov

Ermolov

Karpov

Ermolov

Karpov

No

6

Karpov

Karpov

Karpov

Karpov

Ermolov

Akopov

Karpov

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Просветленный
5мес
1234567891011121314
 n = int(input()) 
counts = {} 
for i in range(n): 
    name = input() 
    counts[name] = counts.get(name, 0) + 1 
 
threshold = n // 2 
result = "No" 
for name, count in counts.items(): 
    if count > threshold: 
        result = name 
        break 
 
print(result) 
Аватар пользователя
Просветленный
5мес
123456789101112131415161718192021222324252627282930313233343536373839404142
 def find_resultative_player(): 
    import sys 
 
    # Читаем все входные данные 
    lines = sys.stdin.read().splitlines() 
     
    if not lines: 
        print("No") 
        return 
 
    N = int(lines[0]) 
    if N == 0: 
        print("No") 
        return 
 
    names = lines[1:N+1] 
 
    # Алгоритм Бойера-Мура для поиска кандидата 
    candidate = None 
    count = 0 
 
    for name in names: 
        if count == 0: 
            candidate = name 
            count = 1 
        elif name == candidate: 
            count += 1 
        else: 
            count -= 1 
 
    # Проверяем, действительно ли кандидат появляется более N/2 раз 
    if candidate: 
        actual_count = names.count(candidate) 
        if actual_count > N / 2: 
            print(candidate) 
            return 
 
    print("No") 
 
# Вызов функции 
if __name__ == "__main__": 
    find_resultative_player() 
Аватар пользователя
Просветленный
5мес

Я не знаю, как у вас,
А на юге, в Нальчике,
Там деваха в брюках шла,
Парень - в сарафанчике.
Ошибиться who есть who
Я всегда рискую,
Визуально женский пол,
Если нету _уя!