eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Логическое дерево

Логическое дерево

Рассмотрим разновидность двоичного дерева которую мы назовем логическим деревом. В этом дереве каждый уровень полностью заполнен, за исключением, возможно, последнего (самого глубокого) уровня. При этом, все вершины последнего уровня находятся максимально слева. Дополнительно, каждая вершина дерева имеет ноль или двоих детей. Каждая вершина дерева имеет связанное с ней логическое значение (\textbf{1} или \textbf{0}). Кроме этого, каждая \textit{внутренняя }вершина имеет связанную с ней логическую операцию ("\textbf{И}" или "\textbf{ИЛИ}"). Значение вершины с операцией "\textbf{И}" - это логическое "\textbf{И}" значений ее детей. Аналогично, значение вершины с операцией "\textbf{ИЛИ}" - это логическое"\textbf{ИЛИ}" значений ее детей. Значения всех листьев задаются во входном файле, поэтому значения всех вершин дерева могут быть найдены. Наибольший интерес для нас представляет корень дерева. Мы хотим, чтобы он имел заданное логическое значение \textbf{v}, которое может отличаться от текущего. К счастью, мы можем изменять логические операции некоторых внутренних вершин (заменить "\textbf{И}" на "\textbf{ИЛИ}" и наоборот). Дано описание логического дерева и набор вершин, операции в которых могут быть изменены. Найдите наименьшее количество вершин, которые следует изменить, чтобы корень дерева принял заданное значение \textbf{v}. Если это невозможно, то выведите строку "\textbf{IMPOSSIBLE}" (без кавычек). \InputFile В первой строке входного файла находятся два числа \textbf{n} и \textbf{v} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10000}, \textbf{0} ≤ \textbf{v} ≤ \textbf{1}) - количество вершин в дереве и требуемое значение в корне соответственно. Поскольку все вершины имеют ноль или двоих детей, то \textbf{n} - нечетное. Следующие \textbf{n} строк описывают вершины дерева. Вершины нумеруются с \textbf{1} до \textbf{n}. Первые \textbf{(n-1)/2} строк описывают внутренние вершины. Каждая из них содержит два числа - \textbf{g} и \textbf{c}, которые принимают значение либо \textbf{0}, либо \textbf{1}. Если \textbf{g=1}, то вершина представляет логическую операцию "\textbf{И}", иначе она представляет логическую операцию "\textbf{ИЛИ}". Если \textbf{c=1}, то операция в вершине может быть изменена, иначе нет. Внутренняя вершина с номером \textbf{i} имеет детей \textbf{2i} и \textbf{2i+1}. Следующие \textbf{(n+1)/2} строк описывают листья. Каждая строка содержит одно число \textbf{0} или \textbf{1} - значение листа. \OutputFile В выходной файл выведите ответ на задачу.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
17 1
0 1
1 0
1 0
1 1
0 1
1 1
1 1
1 1
0
1
0
1
0
0
1
0
1
Выходные данные #1
2