Условие
Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она называет некоторые множества натуральных чисел. Август отвечает Беатрисе YES
, если среди названных ей чисел есть задуманное или NO
в противном случае. После нескольких заданных вопросов Беатриса запуталась в том, какие вопросы она задавала и какие ответы получила и просит вас помочь ей определить, какие числа мог задумать Август.
В первой строке задано n — максимальное число, которое мог загадать Август. Далее каждая строка содержит вопрос Беатрисы (множество чисел, разделенных пробелом) и ответ Августа на этот вопрос.
Вы должны вывести через пробел, в порядке возрастания, все числа, которые мог задумать Август.
Решение
- n = int(input())
- all_nums = set(range(1, n + 1))
- possible_nums = all_nums
- while True:
- guess = input()
- if guess == 'HELP':
- break
- guess = {int(x) for x in guess.split()}
- answer = input()
- if answer == 'YES':
- possible_nums &= guess
- else:
- possible_nums &= all_nums - guess
- print(' '.join([str(x) for x in sorted(possible_nums)]))