G. Логическое дерево
1000 мс · 256 МБ · всё или ничего
Дано двоичное дерево, в котором вершина имеет детей и . Листья хранят значения 0 или 1, внутренние вершины — операцию «И» или «ИЛИ». Значение внутренней вершины — результат её операции над значениями детей.
Некоторые операции разрешено менять на противоположные. Найдите наименьшее число замен, чтобы корень принял заданное значение, или сообщите, что это невозможно.
Формат ввода
В первой строке и (, ) — число вершин и требуемое значение корня; нечётно.
Далее строк описывают внутренние вершины с номерами от 1 до : числа и . Если , вершина хранит «И», иначе «ИЛИ». Если , операцию разрешено менять.
Далее строк описывают листья с номерами от до : по одному числу 0 или 1.
Формат вывода
Выведите наименьшее число замен или IMPOSSIBLE.
Примеры
ввод
9 1 1 0 1 1 1 1 0 0 1 0 1 0 1
вывод
1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.