Есть число № и 2 записей: имя в одной строке, оценка за урок в другой. Некоторые ученики отвечали несколько раз и потому попали в список тоже несколько раз. 4 5 6 7 8 Выведи самую низкую оценку из тех, которые получил последний ученик в списке.
Задача в целом: дан список из N пар (имя, оценка), пары идут подряд (имя в одной строке, оценка в следующей). Последний ученик — это имя из последней пары. Нужно найти минимальную оценку among all записей этого имени.
Пояснение по шагам
- Считать N
- Считать N пар: (name_i, grade_i) для i = 1..N
-last_name = name_N
- Найти минимальную оценку среди всех пар, где имя == last_name
- Вывести эту минимальную оценку
Алгоритм (разумно реализуемый)
1) Прочитать N
2) Создать пустой список пар или массив кортежей
3) Для i = 1..N:
- прочитать name_i
- прочитать grade_i (число)
- добавить (name_i, grade_i) в список
4) last_name = имя из последней пары
5) min_grade = минимальное значение grade у всех пар, где имя == last_name
6) выдать min_grade
С примером на твоих числах
- Пусть оценки последнего ученика равны: 4, 5, 6, 7, 8
- Минимальная оценка среди них = 4
- Следовательно ответ: 4
Пример кода на Python (для быстрого теста)
def min_grade_of_last_student(entries):
# entries — список кортежей (name, grade), полученный по порядку
last_name = entries[-1][0]
last_grades = [g for (name, g) in entries if name == last_name]
return min(last_grades)
# Пример использования:
# entries = [("Иван", 4), ("Мария", 5), ("Иван", 6), ("Лиза", 7), ("Лиза", 8)]
# print(min_grade_of_last_student(entries)) # вывод: 7 (для этого примера)
Если же ты хочешь увидеть конкретный результат именно для набора 4, 5, 6, 7, 8 как оценок последнего ученика, то ответ будет 4.
Если хочешь, могу адаптировать решение под конкретный формат ввода (например, каждую запись с новой строки или ввод через файл) или привести полностью готовый мини-скрипт, который считывает данные именно так, как у тебя в задаче.