SAT (충족 가능성 문제)는 어떠한 변수들로 이루어진 논리식이 주어졌을 때, 그 논리식이 참이 되는 변수값이 존재하는지를 찾는 문제이다.
스트링으로 구성된 논리식이 주어졌을 때, 변수에 적절한 값을 대입하면 참이 될 수 있을지 구하는 프로그램을 작성하시오.
첫째 줄에 논리식을 나타내는 스트링이 주어진다. (스트링의 길이 ≤ 1000)
논리식의 기본적인 정의는 아래와 같다.
틀린 논리식은 주어지지 않는다.
이 문제에서 'A가 B보다 사전순으로 빠르다'는 것은, A를 뒤집어서 이진수로 나타낸 값이 B를 뒤집어서 이진수로 나타낸 값보다 작다는 것입니다.
입력 (a|(b&c))|(c&~c) 출력 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 입력 (a|(b&c))&(c&~c) 출력 0
(a|(b&c)) : a가 참이거나 b,c 모두가 참이거나 a,b,c 모두가 참이면 참이 된다. 사전순으로 빠르게 하려면 a가 참이어야 한다.
(c&~c) : c가 참이든 거짓이든 항상 거짓이 된다.
출제:tncks0121