해결한 사람
0
명
정답률
0.00
%
시간 제한
1000
ms
메모리 제한
245
MB
무수한 봄빛 색조가 매혹적으로 어우러진 광경을 바라보며, 화가 Arkady는 아주 길고 긴 캔버스를 펼친다.
Arkady에게는 청록색, 자홍색, 노란색의 세 가지 물감이 충분히 많이 있다. 연속된 n개의 구간으로 나뉜 일차원 캔버스에서 각 구간을 이 색들 중 하나로 칠해야 한다.
Arkady는 이미 일부 구간을 칠했으며, 하나도 칠하지 않았거나 모두 칠했을 수도 있다. 그는 당신에게 붓을 건넨다. 인접한 어떤 두 구간도 같은 색이 되지 않도록 칠하지 않은 모든 구간을 칠하는 방법이 적어도 두 가지 있는지 판별해야 한다. 한 구간이 두 방법에서 서로 다른 색으로 칠해질 때, 그리고 그럴 때에만 두 방법은 서로 다르다고 간주한다.
첫 번째 줄에는 캔버스의 길이인 하나의 양의 정수 n (1 ≤ n ≤ 100)이 주어진다.
두 번째 줄에는 n개의 문자로 이루어진 문자열 s가 주어진다. 이 문자열의 i-th 번째 문자는 'C'(청록색으로 칠한 구간을 나타냄), 'M'(자홍색으로 칠한 구간을 나타냄), 'Y'(노란색으로 칠한 구간을 나타냄), 또는 '?'(칠하지 않은 구간을 나타냄) 중 하나이다.
서로 다른 칠하기 방법이 적어도 두 가지라면 "Yes"를 출력하고, 그렇지 않으면 "No"를 출력한다(둘 다 따옴표 없이 출력한다).
각 문자는 대문자나 소문자 중 어느 것으로 출력해도 된다.
5
?CYC?
Yes5
CY??Y
Yes5
C?C?Y
Yes첫 번째 예제에는 서로 다른 칠하기 방법이 정확히 두 가지 있다: CYCMY and CYMCY.
두 번째 예제에도 서로 다른 칠하기 방법이 정확히 두 가지 있다: CMCMY and CYCMY.
세 번째 예제에는 칠하기 방법이 네 가지 있다: MCYCM, MCYCY, YCYCM, 그리고 YCYCY.
네 번째 예제에서는 칠하지 않은 구간을 어떻게 칠하더라도 기존의 자홍색 구간들 때문에 칠한 결과가 조건을 만족할 수 없다. 다섯 번째 예제도 마찬가지이다.