논리 무스
시간 제한2초메모리 제한1024 MB
불리언 and/or 식에서 l번째부터 r번째 키워드를 true나 false 하나로 바꿔 전체 값을 목표 값으로 만들 수 있는지 각 질의마다 판단합니다.
문제
농부 존(FJ)에게는 키워드 개로 이루어진 불리언 문장이 있다(, 은 홀수). 홀수 번째 위치에는 true나 false만 나오고, 짝수 번째 위치에는 and나 or만 나온다.
x OPERATOR y 형태의 구문에서 와 는 각각 true 또는 false이고, OPERATOR는 and 또는 or이다. 이 구문은 다음과 같이 계산한다.
x and y는 와 가 모두 참이면 참이고, 그렇지 않으면 거짓이다.x or y는 나 중 하나라도 참이면 참이고, 그렇지 않으면 거짓이다.
FJ는 Moo 언어의 우선순위를 따라 문장을 계산한다. C++와 같이 and가 or보다 우선한다. 키워드가 하나만 남을 때까지 다음 단계를 반복한다.
- 문장에
and가 있으면 그중 하나를 골라, 그 주변 구문을 계산 결과로 바꾼다. - 그렇지 않으면 문장에
or가 있다. 그중 하나를 골라, 그 주변 구문을 계산 결과로 바꾼다.
한 단계에서 계산할 수 있는 구문이 여럿이어도 어느 것을 고르는지는 결과에 영향을 주지 않는다. 문장은 언제나 같은 값으로 계산된다.
FJ는 개의 질의를 받는다(). 각 질의에서는 홀수인 정수 과 ()이 주어지고, 키워드 부터 까지의 구간을 지운다. 그 뒤 지운 구간을 true 또는 false 하나로 바꿔 전체 문장이 주어진 값이 되게 하려 한다. 이것이 가능한지 판단하라.
입력
첫 줄에 과 가 주어진다.
다음 줄에는 유효한 불리언 문장을 이루는 개의 문자열이 주어진다.
이어지는 개의 줄에는 정수 , 과 교체 후 전체 문장이 가져야 할 값을 나타내는 문자열 true 또는 false가 주어진다.
출력
길이가 인 문자열을 출력한다. 번째 문자는 번째 질의가 가능하면 Y, 그렇지 않으면 N이다.