Задание №16 — Алгоритмы и программирование
Напишите программу для решения следующей задачи.
Девятиклассники участвовали в викторине по математике. Необходимо было ответить на 20 вопросов. Победителем викторины считается участник, правильно ответивший на наибольшее количество вопросов. На сколько вопросов победитель ответил правильно? Если есть участники викторины, которые не смогли дать правильный ответ ни на один из вопросов, выведите YES, иначе выведите NO. Гарантируется, что есть участники, правильно ответившие хотя бы на один из вопросов.
Программа получает на вход число участников викторины N (1 ≤ N ≤ 50), затем для каждого участника вводится количество вопросов, на которые получен правильный ответ.
Пример работы программы:
Входные данные | Выходные данные |
4 15 12 0 17 | 17 YES |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно обработать данные о каждом участнике викторины. Нам нужно найти два значения: максимальное количество правильных ответов и наличие хотя бы одного участника с нулевым результатом.
Шаг 1: Ввод количества участников.
Сначала мы считываем целое число , которое обозначает общее количество учеников. По условию .
Шаг 2: Инициализация переменных.
Создадим переменную max_score для хранения максимального результата. Так как по условию хотя бы один человек ответил правильно на 1 или более вопросов, мы можем изначально задать max_score = 0.
Также создадим логическую переменную (флаг) has_zero, которая изначально равна False (ложь). Она станет True (истина), если мы встретим участника с 0 баллов.
Шаг 3: Цикл обработки данных.
Запустим цикл, который повторится раз. Внутри цикла:
1. Считываем количество правильных ответов текущего ученика (назовём это score).
2. Сравниваем score с max_score. Если score > max_score, то обновляем значение max_score.
3. Проверяем, равен ли score нулю. Если равен, устанавливаем has_zero = True.
Шаг 4: Вывод результата.
После завершения цикла выводим найденное значение max_score. Затем проверяем значение флага has_zero: если он истинен, выводим "YES", иначе — "NO".
Пример реализации на языке Python:
n = int(input())
max_score = 0
has_zero = False
for i in range(n):
score = int(input())
if score > max_score:
max_score = score
if score == 0:
has_zero = True
print(max_score)
if has_zero:
print("YES")
else:
print("NO")
В примере из условия: при вводе 15, 12, 0, 17 программа определит максимум и зафиксирует наличие нуля, выведя "YES".
Ответ: Программа выведет максимальное количество баллов и подтверждение наличия нулевых результатов (в примере: 17 и YES).
Источник: ФИПИ