Для решения данной задачи мы будем использовать алгоритм, который позволяет извлечь самую низкую оценку последнего упомянутого ученика из списка.
Шаги решения:
Чтение входных данных: Первым делом нам нужно считать количество учеников \( N \). Поскольку для каждого ученика у нас есть имя и оценка, общее количество записей будет \( 2N \).
Сохранение оценок: Мы создадим словарь, в котором будем хранить оценки для каждого ученика. Ключом будет имя ученика, а значением — список оценок, которые он получил.
Обработка записей: Для каждой пары "имя - оценка" будем добавлять оценку к соответствующему ученику в нашем словаре.
Получение последнего ученика: После обработки всех записей мы найдем оценку последнего ученика в списке и посмотрим, какие оценки он получил.
Поиск минимальной оценки: Из всех оценок последнего ученика выберем минимальную.
Пример кода на Python:
# Чтение числа учеников
N = int(input())
# Словарь для хранения оценок учеников
grades = {}
# Чтение имен и оценок
for i in range(N):
name = input().strip()
score = int(input().strip())
# Добавляем оценку к ученику
if name in grades:
grades[name].append(score)
else:
grades[name] = [score]
# Последний ученик в списке
last_student = name
# Проверяем оценки последнего ученика
if last_student in grades:
# Находим минимальную оценку
min_score = min(grades[last_student])
print(min_score)
else:
# Если последний ученик не получил ни одной оценки
print("Нет оценок для последнего ученика")
Объяснение:
Словарь
grades: Это структура данных, которая позволяет нам эффективно сохранять и получать оценки для каждого ученика по имени. Если имя уже есть в словаре, мы добавляем новую оценку в список; если нет — создаем новый список.Цикл чтения данных: Мы запускаем цикл, который считывает пары "имя - оценка" и таким образом заполняем наш словарь.
Определение последнего ученика: Переменная
last_studentсохраняет имя последнего ученика после завершения цикла.Поиск минимальной оценки: С помощью функции
min()находим минимальную оценку, полученную последним учеником.
Таким образом, используя этот подход, мы можем эффективно решить задачу поиска самой низкой оценки последнего ученика в списке полученных записей.