Top.Mail.Ru

Августу дана возможность загадать число от 1 до n. Затем Беатриса задает ему несколько вопросов о загаданном числе. Каждый вопрос представляет собой набор чисел, разделенных пробелами. Беатриса должна угадать загаданное число, задавая как можно меньше вопросов. Август отвечает на вопросы Беатрисы, говоря “YES” или “NO”.

Решение задачи:

1. Считываем наибольшее число n.
2. Создаем пустое множество, в котором будем хранить возможные числа, которые мог загадать Август.
3. Инициализируем множество возможных чисел от 1 до n.
4. Считываем вопрос Беатрисы.
5. Если вопрос содержит число x, удаляем из множества возможных чисел все числа, которые не удовлетворяют условию, например, меньшие x, большие x или не равные x.
6. Повторяем шаги 4-5 до тех пор, пока не будет считана строка “HELP”.
7. Для каждого вопроса выводим ответ Августа, который является “YES”, если множество возможных чисел не пусто, и “NO” в противном случае.

Таким образом, мы последовательно сокращаем множество возможных чисел на основе ответов Августа на вопросы Беатрисы, чтобы прийти к одному возможному числу или определить, что такого числа нет.

   
[metform form_id="1136"]