Вопрос от Анонимного юзера 16 марта 2026 17:20
Дано число N, затем в N строках N имён учеников из списка класса, а под ними — N оценок этих учеников (в том же порядке). Выведи имена всех учеников, которые получили пятерки.
Ответ нейросети
16 марта 2026 17:20
Решение задачи: вывести имена учеников, которые получили пятерки
Краткое понимание задачи
- В начале дано число N.
- Затем идут N строк с именами учеников (одна строка — одно имя).
- Под ними идут N оценок тех же учеников в том же порядке (одна или несколько оценок на строку; по сути — нужно взять первые N целых чисел после имен).
- Нужно вывести те имена, у которых соответствующая оценка равна 5.
Пошаговое объяснение
- Прочитать N.
- Прочитать N имен и сохранить их в списке names.
- Предполагаем, что каждое имя занимает отдельную строку.
- Прочитать N оценок, учитывая, что они могут построчно быть по одной цифре или записаны несколькими цифрами в одной строке.
- Собираем градации в список grades, и продолжаем читать, пока не наберём N значений. Игнорируем пустые строки.
- Пройтись по индексу i от 0 до N-1 и вывести names[i], если grades[i] == 5.
- Сложность: время O(N), память O(N).
Особенности
- Если оценки даны на одной строке через пробел, код обрабатывает это нормально.
- Если кто-то получил не число или есть лишние данные — код ориентирован на корректный ввод по задаче.
Пример реализации на Python (чтение из stdin)
def solve(): import sys
# Шаг 1: прочитать N
line = ''
while line.strip() == '':
line = sys.stdin.readline()
if line == '':
return # нет данных
N = int(line.strip())
# Шаг 2: прочитать N имен
names = []
while len(names) < N:
s = sys.stdin.readline()
if s == '':
break
names.append(s.rstrip('\n').rstrip('\r'))
# В случае, если прочитано меньше N имен (структура input нестандартна),
# можно завершить или обработать как есть. Предположим корректный ввод.
# Шаг 3: прочитать N оценок
grades = []
while len(grades) < N:
line = sys.stdin.readline()
if line == '':
break
parts = line.strip().split()
for p in parts:
if p:
grades.append(int(p))
if len(grades) == N:
break
# Шаг 4: вывести имена с пятёрками
out = []
for i in range(min(N, len(grades), len(names))):
if grades[i] == 5:
out.append(names[i])
sys.stdout.write("\n".join(out))
if name == "main": solve()
Пример теста
- Ввод: 4 Анна Борис Виктор Галина 5 3 5 4
- Вывод: Анна Виктор
Другой вариант ввода (оценки в одной строке): 3 Иван Петр София 5 4 5
- Вывод: Иван София
Этим ответом вы получаете корректный список всех учеников, которые получили пятерки, в порядке их появления.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



