Задача понятна. Нужно проверить, встречается ли в списке оценок последняя целевая оценка grade.
План решения:
- Считываем N.
- Для каждого ученика считываем строку с фамилией и именем (первых строк пары) и затем считываем строку с его оценкой. Сохраняем все эти оценки в список.
- Считываем последнюю строку с целевой оценкой grade.
- Проверяем, встречалась ли grade среди сохранённых оценок. Выводим "ДА" если да, иначе "НЕТ".
Сложность: время O(N), память O(N) (для хранения 2N строк-оценок).
Пример реализации на Python 3:
- Пример кода: import sys
def main(): input = sys.stdin.readline
# Считываем N
line = input()
while line.strip() == "":
line = input()
N = int(line.strip())
grades = []
for _ in range(N):
# строка с фамилией и именем (не используется в логике)
name_line = input()
# строка с оценкой
grade_line = input().strip()
grades.append(int(grade_line))
# последняя строка — целевая оценка
target_line = input().strip()
target = int(target_line)
print("ДА" if target in grades else "НЕТ")
вызов
if name == "main": main()
Пояснение к коду:
- Мы читаем N, затем для каждого ученика читаем две строки: первую — имя/фамилию (никуда не сохраняем), вторую — его оценку, которую конвертируем в int и сохраняем.
- После цикла читаем последнюю строку как целевую grade.
- Проверяем наличие target в списке grades и выводим нужную строку.
Пример теста: Ввод: 3 Иванов Иван 4 Петров Петр 5 Сидоров Сидор 3 5 Вывод: ДА
Если у вас нужно решение на другом языке или без явного сохранения всех оценок (мгновенная проверка по ходу чтения после получения целевой grade), могу адаптировать.