Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3355843
А
Аноним
06 сентября 2025 20:05 · публичный вопрос
А
Аноним

Вася провёл в кружке контрольную и в столбик записал результаты: имя, фамилия, оценка через пробел. Например, так: Соня Иванова пять Он хочет переписать их так, чтобы можно было…

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

Вася провёл в кружке контрольную и в столбик записал результаты: имя, фамилия, оценка через пробел. Например, так: Соня Иванова пять Он хочет переписать их так, чтобы можно было показать родителям. Для этого между фамилией и оценкой Вася добавляет слово «получил» или «получила», а в конце ставит точку. Выходит так: Соня Иванова получила пять. Дано число n и n записей Васи про его учеников. Выведи, что Вася отправил родителям, если известно, что всех девочек в Васином кружке зовут Соня либо Маша.

Ответ нейросети
06 сентября 2025 20:05

Детальное решение задачи

Что нужно сделать

  • Для каждой записи (имя, фамилия, оценка) нужно вывести фразу: "{Имя} {Фамилия} получила/получил {Оценка}.".
  • Правило выбора формы глагола:
    • если имя — Соня или Маша, то это девочка, значит использовать "получила";
    • иначе — использовать мужскую форму "получил".
  • Порядок слов в выходной строке такой же: имя, фамилия, глагол, оценка, точка в конце.
  • Параметр "Предмет" и "Класс" здесь не учитываются; используем общий подход для средней школы.

Пошаговый алгоритм

  1. Прочитать n — количество записей.
  2. Повторить n раз:
    • считать три слова: имя, фамилия, оценка.
    • проверить: имя равно "Соня" или "Маша" → female = true, иначе false.
    • выбрать глагол: если female — "получила", иначе — "получил".
    • вывести строку: "{имя} {фамилия} {глагол} {оценка}.".
  3. Повторить для всех записей.

Сложность

  • Время: O(n), по количеству записей.
  • Память: O(1) кроме вывода (если считать вывод по строкам — O(n) на всякую строку).

Пример Вход: 3 Соня Иванова пять Иван Петров четыре Маша Смирнов пять

Выход: Соня Иванова получила пять. Иван Петров получил четыре. Маша Смирнов получила пять.

Код на Python (упрощённый, читается из последовательных слов: имя, фамилия, оценка за каждую запись)

import sys

def solve():
    data = sys.stdin.read().strip().split()
    if not data:
        return
    n = int(data[0])
    idx = 1
    out_lines = []
    for _ in range(n):
        if idx + 2 >= len(data):
            break
        name = data[idx]
        surname = data[idx + 1]
        grade = data[idx + 2]
        idx += 3

        female = (name == "Соня" or name == "Маша")
        verb = "получила" if female else "получил"

        out_lines.append(f"{name} {surname} {verb} {grade}.")

    print("\n".join(out_lines))

if __name__ == "__main__":
    solve()

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