Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3602749
А
Аноним
19 апреля 2026 09:53 · публичный вопрос
А
Аноним

адача 1 Дано число N, затем 2N записей: фамилия и имя ученика в одной строке, оценка во второй. В последней строке записано число grade. Создай и выведи массив с фамилиями и…

Запрос пользователя

Адача 1 Дано число N, затем 2N записей: фамилия и имя ученика в одной строке, оценка во второй. В последней строке записано число grade. Создай и выведи массив с фамилиями и именами всех учеников, получивших оценку grade. Ввод Вывод 3 Петров Пётр 4 Александрова Александра 5 Сонина Софья 4 4 [‘Петров Пётр’, ‘Сонина Софья’] 3 Петров Пётр 4 Александрова Александра 5 Сонина Софья 4 3 []

Ответ нейросети
19 апреля 2026 09:53

Задача ясна: прочитав N, затем 2N строк (имя ученика и его оценку на следующей строке), затем последнюю строку с grade, нужно вывести массив имен учеников, у которых оценка равна grade.

Пошаговый подход:

  • Считать N.
  • Для i от 1 до N считать две строки: имя (строка с фамилией и именем) и оценку (целое число).
  • Сохранить пары (имя, оценка).
  • Прочитать целевую оценку grade (целое число).
  • Отфильтровать имена по условию оценка == grade.
  • Вывести результат в виде списка Python, например: ['Петров Пётр', 'Сонина Софья'].

Сложность: время O(N), память O(N) из-за хранения пар.

Код (Python 3):

import sys

def main():
    data = [line.rstrip('\n') for line in sys.stdin]
    if not data:
        print([])
        return

    it = iter(data)

    try:
        N = int(next(it).strip())
    except StopIteration:
        print([])
        return

    records = []
    for _ in range(N):
        # имя ученика
        name = next(it).strip()
        # оценка
        grade_line = next(it).strip()
        g = int(grade_line)
        records.append((name, g))

    try:
        target = int(next(it).strip())
    except StopIteration:
        # если последняя строка с grade не дана, вернуть пустой массив
        print([])
        return

    result = [name for (name, g) in records if g == target]
    print(result)

if __name__ == "__main__":
    main()

Примеры использования:

  • Ввод: 3 Петров Пётр 4 Александрова Александра 5 Сонина Софья 4 4 Вывод: ['Петров Пётр', 'Сонина Софья']

  • Ввод: 3 Петров Пётр 4 Александрова Александра 5 Сонина Софья 4 3 Вывод: []

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