2-SAT 만족 가능성
면접 대비시간 제한1초메모리 제한256 MB
N개 불리언 변수에 M개 절을 모두 참으로 만드는 값을 배정할 수 있는지 판정합니다.
문제
2-SAT은 불리언 변수 이 있을 때, 2-CNF 식을 true로 만드는 값 배정이 있는지 판정하는 문제이다.
2-CNF 식은 와 같은 형태이다. 괄호로 묶인 각 부분을 절이라고 하며, 절은 변수 두 개를 로 묶은 것이다. 는 OR, 는 AND, 은 NOT을 뜻한다.
변수의 개수 과 절의 개수 , 그리고 식 가 주어졌을 때, 식 를 true로 만들 수 있는지 없는지를 판정하는 프로그램을 작성하시오.
예를 들어 , 이고 인 경우, 을 false, 를 false, 을 true로 정하면 식 가 true가 된다. 반면 , 이고 인 경우에는 에 어떤 값을 넣어도 식 를 true로 만들 수 없다.
입력
첫째 줄에 변수의 개수 ()과 절의 개수 ()이 주어진다. 둘째 줄부터 개의 줄에 절이 한 줄에 하나씩 주어진다. 절은 두 정수 와 ()로 이루어지며, 양수는 각각 와 를, 음수는 각각 와 를 뜻한다.
출력
첫째 줄에 식 를 true로 만들 수 있으면 1을, 없으면 0을 출력한다.