Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 19 апреля 2026 09:53

Адача 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 Вывод: []

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

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

адача 1 Дано число N, затем 2N записей: фамилия и имя ученика в одной строке, оценка во второй. В последней строке записано число grade. Создай и выведи массив с фамилиями и именами всех учеников, получивших оценку grade. Ввод Вывод 3 Петров Пётр 4 Александрова Александра 5 Сонина Софья 4 4 [‘Петров Пётр’, ‘Сонина Софья’] 3 Петров Пётр 4 Александрова Александра 5 Сонина Софья 4 3 []
Задача ясна: прочитав N, затем 2N строк (имя ученика и его оценку на следующей строке), затем последнюю строку с grade, нужно вывести массив имен учеников, у которых оценка равна grade. Пошаговый подход: - Считать N. - Для i от 1 до N считать две строки: имя (строка с фамилией и именем) и оценку (целое число). - Сохранить пары (имя, оценка). - Прочитать целевую оценку grade (целое число). - Отфильтровать имена по условию оценка == grade. - Вывести результат в виде списка Python, например: ['Петров Пётр', 'Сонина Софья']. Сложность: время O(N), память O(N) из-за хранения пар. Код (Python 3): ```python 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 Вывод: [] Если хочешь, могу адаптировать решение под другой язык программирования или под иной формат ввода/вывода.