EduBrick

O. 2-SAT

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

Есть nn булевых переменных x0,…,xn−1x_0, \dots, x_{n-1} и mm утверждений вида (xi1=e1)∨(xi2=e2)(x_{i_1} = e_1) \lor (x_{i_2} = e_2). Определите, можно ли выбрать значения переменных так, чтобы все утверждения стали истинными.

Формат ввода

Первая строка содержит числа nn (1≤n≤1051 \le n \le 10^5) и mm (0≤m≤3⋅1050 \le m \le 3 \cdot 10^5).

Далее идут mm строк по четыре числа i1i_1, e1e_1, i2i_2, e2e_2 (0≤ij<n0 \le i_j < n, 0≤ej≤10 \le e_j \le 1).

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

Одно слово: YES, если набор значений существует, и NO иначе.

Примеры

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