Мини-урок · перед практикой

Встречалось ли число раньше

Множество содержит только уже обработанные числа.

Как к ней подойти

Увидите, как множества помогают сравнивать группы без повторяющихся элементов.

Коротко о теме

Множество хранит каждый элемент один раз. Пересечение a & b оставляет общие элементы, разность a - b - только элементы a, а объединение a | b собирает обе группы. Если важен порядок вывода, отсортируйте результат отдельно.

Ключевая идея · Множество просмотренных

Проверяем принадлежность до добавления текущего числа.

Проверьте перед запуском

  • Первое появление всегда NO, последующие появления того же числа — YES.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Множество просмотренных

Проверяем принадлежность до добавления текущего числа.

seen = set()
for x in map(int, input().split()):
    print("YES" if x in seen else "NO")
    seen.add(x)

Время: O(n) в среднем. Память: O(n).

Другой способ: Поиск в предыдущем списке

Список тоже позволяет проверить наличие, но поиск линейный.

seen = []
for x in map(int, input().split()):
    print("YES" if x in seen else "NO")
    seen.append(x)

Время: O(n²). Память: O(n).