BOJ 3579 Important Wires

BOJ 3579 Important Wires

문제 링크:

문제 내용

nn개의 핀이 갖는 논리식이 주어집니다. 핀은 알파벳 대문자이며, 핀의 입력들은 알파벳 소문자입니다. 등장하는 논리 연산은 & (and), | (or), ~ (not), => (imply), <=> (equal)이 있습니다.

주어진 핀들을 모두 사용하고 논리 연산을 사용하여, 어떤 경우에도 참인 식이 존재한다면 아무거나 하나를 찾아 출력하세요.

입력

첫 줄에는 핀의 개수 nn이 주어집니다. (1n101 \le n \le 10)

다음 nn줄에는 각 핀의 정의가 주어집니다. 각 줄은 핀의 이름 (알파벳 대문자)로 시작하고, 그 다음에 :=, 그리고 입력들로 이루어진 논리식 순으로 주어집니다. 각 줄에는 임의의 개수의 빈칸이 있을 수 있으며, 각 줄의 길이는 1000을 초과하지 않습니다.

출력

문제의 조건을 충족하는 식이 존재한다면 Yes를 출력하고, 다음 줄에 그러한 식을 아무거나 하나 출력합니다. 그러한 식이 존재하지 않는다면 No를 출력합니다.

문제 풀이

스포일러
먼저 임의의 핀 X에 대해 X|~X를 쓰면 항상 참인 식을 얻을 수 있습니다. 모든 핀 이름을 언급하려면 A|B|C|...를 앞에 붙이면 됩니다.
Last updated on