Задача в целом: дан список из N пар (имя, оценка), пары идут подряд (имя в одной строке, оценка в следующей). Последний ученик — это имя из последней пары. Нужно найти минимальную оценку among all записей этого имени.
Пояснение по шагам
- Считать N
- Считать N пар: (name_i, grade_i) для i = 1..N -last_name = name_N
- Найти минимальную оценку среди всех пар, где имя == last_name
- Вывести эту минимальную оценку
Алгоритм (разумно реализуемый)
- Прочитать N
- Создать пустой список пар или массив кортежей
- Для i = 1..N:
- прочитать name_i
- прочитать grade_i (число)
- добавить (name_i, grade_i) в список
- last_name = имя из последней пары
- min_grade = минимальное значение grade у всех пар, где имя == last_name
- выдать 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.
Если хочешь, могу адаптировать решение под конкретный формат ввода (например, каждую запись с новой строки или ввод через файл) или привести полностью готовый мини-скрипт, который считывает данные именно так, как у тебя в задаче.