Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3276206
А
Аноним
11 июня 2025 12:36 · публичный вопрос
А
Аноним

есть число n и 2n записей: имя в одной строке, оценка за урок в другой. Некоторые ученики отвечали несколько раз и потому попали в список тоже несколько раз. Вывели самую низкую…

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

Есть число n и 2n записей: имя в одной строке, оценка за урок в другой. Некоторые ученики отвечали несколько раз и потому попали в список тоже несколько раз. Вывели самую низкую оценку из тех, которые получил последний ученик в списке. Ввод: 4 Петров Петр 4 Сонина Соня 4 Александрова Александра 5 Сонина Соня 3 Вывод 3

Ответ нейросети
11 июня 2025 12:36

Давайте подробно разберемся с задачей.

Условие:

  • Есть число n.
  • Далее идет 2n строк: в каждой паре строк — имя ученика и оценка за урок.
  • Некоторые ученики отвечали несколько раз, то есть могут встречаться несколько раз.
  • Нужно найти самую низкую оценку, которую получил последний ученик в списке.

Пошаговое решение:

  1. Ввод данных:
    Сначала читаем число n.

  2. Обработка пар: Для каждого из n учеников у нас есть две строки:

    • первая — имя ученика
    • вторая — оценка
  3. Запоминание последнего ученика:

    • Нам важен именно последний ученик.
    • Нам нужно запомнить его имя при чтении.
  4. Запись оценок:

    • Для каждого ученика нужно запомнить его оценки.
    • Так как один ученик может округлиться несколько раз, нужно сохранять все оценки для каждого ученика.
  5. Что делать после?

    • После того, как все оценки прочитаны, определить последние имя ученика.
    • Просмотреть все оценки последнего ученика.
    • Определить минимальную оценку среди них.

Реализация на Python:

n = int(input())
last_student = None
# Создаем словарь для хранения оценок каждого ученика
grades = {}

for _ in range(n):
    name = input().strip()        # Имя ученика
    score = int(input().strip())  # Оценка
    last_student = name           # Обновляем последнего ученика
    # Если такого ученика еще нет, создаем список оценок
    if name not in grades:
        grades[name] = []
    # Добавляем оценку
    grades[name].append(score)

# После обработки всех данных, находим минимальную оценку последнего ученика
min_grade = min(grades[last_student])
print(min_grade)

Объяснение:

  • Мы считываем n.
  • Для каждого ученика читаем его имя и оценку.
  • Запоминаем имя последнего ученика.
  • В словаре grades храним список оценок каждого ученика.
  • После завершения чтения определяем минимальную оценку этого последнего ученика через min().

Если потребуется более подробное объяснение или есть вопросы, пишите!