EduBrick

M. 2-SAT

3000 мс · 256 МБ · всё или ничего

Даны булевы переменные и утверждения вида «xi1=e1x_{i_1} = e_1 или xi2=e2x_{i_2} = e_2». Подберите значения переменных так, чтобы все утверждения стали истинными. Решение гарантированно существует.

Формат ввода

В первой строке tt (1≤t≤1001 \le t \le 100) — количество наборов. Каждый набор: в первой строке nn и mm — число переменных и утверждений; далее mm строк по четыре числа i1i_1, e1e_1, i2i_2, e2e_2 (0≤ij<n0 \le i_j < n, 0≤ej≤10 \le e_j \le 1). Сумма всех nn не больше 10510^5, сумма всех mm — не больше 3⋅1053 \cdot 10^5.

Формат вывода

Для каждого набора выведите строку из nn нулей и единиц — значения переменных. Если решений несколько, выведите любое.

Примеры

ввод
3
1 0
2 2
0 0 1 0
0 1 1 1
3 4
0 1 1 0
0 0 2 1
1 1 2 0
0 0 0 1
вывод
3
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.