«Конъюнкти́вная норма́льная фо́рма (КНФ) в булевой логике — нормальная форма, в которой булева формула имеет вид конъюнкции дизъюнкций литералов» (взято с https://ru.wikipedia.org/wiki/КНФ).
Иными словами, КНФ — это формула вида
, где & обозначает логическое "И" (конъюнкцию),
обозначает логическое "ИЛИ" (дизъюнкцию), а vij — это некоторые логические переменные или их отрицания. Каждое выражение в скобках называется дизъюнктом, а vij называются литералами.
Дана КНФ, в которой фигурируют переменные x1, ..., xm и их отрицания. Известно, что каждая переменная входит не более, чем в два дизъюнкта (суммарно как с отрицанием, так и без). Требуется определить выполнима ли эта КНФ, то есть, существуют ли такие значения переменных, при которых значение КНФ истинно. Если КНФ выполнима, то также требуется привести значения переменных, при которых КНФ истинна.
Гарантируется, что каждая переменная входит в каждый дизъюнкт не более одного раза.
Выходные данные
Если КНФ не выполнима, выведите единственную строку "NO" (без кавычек), в противном случае выведите две строки: строку "YES" (без кавычек), а затем строку из m нулей или единиц — значения переменных в выполняющем наборе в порядке от x1 до xm.