ГлавнаяСборникиТурнирыРазделыФорумыУчастникиПечатьПомощьО системе

Сборники > Problems from everywhere > задача:


VologdaInterUni-D. 50610 - Выполнимость

Гость
• Обсуждение задачи (1)

Задачи сборника

• VologdaInterCity-A. 50614 - Игра в...
• VologdaInterCity-B. 50632 - Снова ...
• VologdaInterCity-C. 50646 - Чем бо...
• VologdaInterCity-D. 50605 - За реш...
• VologdaInterCity-E. 50624 - Проста...
• VologdaInterUni-A. 50628 - Матрица
• VologdaInterUni-B. 2 ->10
• VologdaInterUni-C. 50629 - Минусы
• VologdaInterUni-D. 50610 - Вы...
• VologdaInterUni-E. 50619 - Марсоход
• VologdaInterUni-F. 50638 - Сообще...
• VologdaInterUni-G. 50639 - Скобки
• VologdaInterUni-H. 50648 - Трансля...

Обратная связь

Если у вас есть предложения или пожелания по работе Contester, посетите форум сайта www.contester.ru.

Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб.
Автор: Игорь Андрианов, ВоГТУ.

Одной из классических задач теории вычислений является задача о выполнимости булевых формул - можно ли подобрать такие значения переменных, входящих в формулу, чтобы её значение стало истинным.

Будем записывать формулы, используя:
• имена входных переменных x1, x2, ..., xN;
• логические операции: AND - конъюнкция ("И"), OR - дизъюнкция ("ИЛИ"), ~ (тильда) - инверсия ("НЕ");
• круглые скобки.
Например, формула x1 AND x2 AND x5 выполнима, поскольку она принимает истинное значение при x1=x2=x5=1. Формула же (x1 OR x2) AND ~x1 AND ~x2 невыполнима, поскольку её значение равно нулю при любых комбинациях переменных x1 и x2. Известно, что в общем виде эта задача является NP-полной. Вам предлагается решить её для частного случая, когда формула имеет вид:

(p1 OR p2) AND (p3 OR p4) AND ... AND (pi OR pj)

а в качестве каждого члена p выступает либо некоторая входная переменная xi, либо её отрицание ~xi.

Ввод
В первой строке ввода содержится булева формула, записанная в вышеописанном формате. Общее количество переменных N не превышает 100, длина формулы не превышает 10 000 символов. Слова AND, OR отделяются от соседних символов одним пробелом. Других пробелов в строке нет.
Вывод
Вывод должен содержать слово "YES", если формула выполнима, и "NO" в противном случае.

Ввод Вывод
(x1 OR x2) AND (~x1 OR ~x1) AND (~x2 OR ~x2)
NO

Для отправки решений необходимо выполнить вход.

www.contester.ru