삼항 연산자
시간 제한0.5초메모리 제한1024 MB
N개의 불리언 변수로 이루어진 삼항 조건식이 주어질 때, 2^N가지 대입 중 식이 0으로 계산되는 경우의 수를 센다.
문제
개의 참/거짓 변수를 가진 식이 주어진다. 변수의 값으로 가능한 개의 경우에 대하여 식의 값이 인 경우의 수를 구하는 프로그램을 작성하여라.
이 문제에서 식은 아래 BNF 표기법에서 을 뜻한다.
- \text{variable} ::= \text{‘a’ | ‘b’ | ... | N번째 알파벳 소문자}
식의 값은 을 의미하며 아래와 같이 재귀적으로 계산된다. 잘 생각해보면 올바른 식이 주어졌을 때 해당 식을 계산하는 방법이 유일하다는 것을 알 수 있다.
입력
첫 번째 줄에는 변수의 수 ()이 주어진다.
두 번째 줄에는 식에 해당하는 길이 이상 이하의 문자열이 주어진다. 식은 ‘0’, ‘1’, ‘a’-(N번째 알파벳 소문자), ‘=’, ‘?’, ‘:’로만 구성되며 올바른 식만 주어진다.
출력
식의 값이 이 되도록 변수의 값을 할당하는 방법의 수를 출력한다.