Hệ ràng buộc kéo theo
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Trong một hệ thống suy luận logic, ta có \(N\) mệnh đề cơ bản và \(M\) quy tắc suy luận. Mỗi quy tắc có dạng "nếu \(a\) đúng thì \(b\) đúng" (ký hiệu \(a \Rightarrow b\)), trong đó mỗi vế là một mệnh đề hoặc phủ định của mệnh đề.
Hãy xác định xem có tồn tại cách gán giá trị đúng/sai cho các mệnh đề cơ bản sao cho tất cả các quy tắc suy luận đều được thỏa mãn hay không.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên \(N\) và \(M\) (\(1 \le N \le 10^5\), \(1 \le M \le 2 \cdot 10^5\)).
- \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(a_i, b_i\) (\(-N \le a_i, b_i \le N\), \(a_i \neq 0\), \(b_i \neq 0\)). Một số dương \(x\) nghĩa là "mệnh đề \(x\)", số âm \(-x\) nghĩa là "phủ định của mệnh đề \(x\)". Quy tắc: nếu vế trái đúng thì vế phải đúng.
Định dạng đầu ra
- In ra
YESnếu có cách gán thỏa mãn,NOnếu không.
Ví dụ
Input:
3 4
1 2
-1 3
2 -3
-2 3
Output:
YES
Nhận xét