아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

가지 오이 당근

시간 제한1초메모리 제한1024 MB

요약
일부만 알려진 채소 선택과 각 참가자가 주장한 승패 결과가 주어질 때, 규칙에 맞는 완성된 선택을 찾거나 불가능을 판정한다.
난이도

보통10점 중 5점

유형
그리디, 구현, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

키위 유치원에서 NN마리의 어린 키위새들은 재밌는 게임 "가지 오이 당근"을 하고 있습니다. "가지 오이 당근"은 가위바위보와 비슷한 게임으로, 다음과 같은 규칙을 가집니다.

  • 참여하는 모든 키위새는 가지, 오이, 당근 중 하나의 채소를 내야 합니다.
  • 가지를 낸 키위새는 오이를 낸 키위새가 존재하면 승점을 얻습니다.
  • 오이를 낸 키위새는 당근을 낸 키위새가 존재하면 승점을 얻습니다.
  • 당근을 낸 키위새는 가지를 낸 키위새가 존재하면 승점을 얻습니다.
  • 모든 키위새가 승점을 얻었거나 모든 키위새가 승점을 얻지 못한 경우 모든 키위새가 비깁니다.
  • 그렇지 않으면, 승점을 얻은 키위새는 이기고 승점을 얻지 못한 키위새는 집니다.

가지는 오이를 상대로, 오이는 당근을 상대로, 당근은 가지를 상대로 승점을 얻습니다.

유치원의 키위새들은 채소를 내었지만, 여러분은 잠시 쉬고 있느라 몇몇 키위새가 낸 채소를 보지 못했습니다! 그 대신 유치원의 키위새들에게 게임의 결과를 물어보아 각 키위새가 이겼는지, 비겼는지, 졌는지 알아내었습니다. 하지만 키위새는 기억력이 좋지 않아 실제 결과와 다른 결과를 말했을 수도 있습니다.

키위새들이 말한 결과가 가능한 결과인지 판별하고 가능하다면 각 키위새가 낸 채소들의 조합으로 가능한 것을 아무거나 찾아서 출력해 봅시다.

입력

첫 번째 줄에 테스트 케이스의 수 TT가 주어집니다. (1≤T≤105)(1 \le T \le 10^5)

각 테스트 케이스의 첫 번째 줄에 "가지 오이 당근"을 한 키위새의 수 NN이 주어집니다. (2≤N≤105)(2 \le N \le 10^5)

그다음 줄에 G, O, D, ? 만으로 이루어진 길이 NN의 문자열 VV가 주어집니다. 이 문자열의 ii번째 글자 V_iV\_i는 다음과 같은 정보를 나타냅니다.

  • V_i=V\_i = G: ii번째 키위새가 채소 가지를 내었습니다.
  • V_i=V\_i = O: ii번째 키위새가 채소 오이를 내었습니다.
  • V_i=V\_i = D: ii번째 키위새가 채소 당근을 내었습니다.
  • V_i=V\_i = ?: ii번째 키위새가 낸 채소를 보지 못했습니다.

VV에 ?가 한 개 이상은 존재합니다.

그다음 줄에 W, D, L 만으로 이루어진 길이 NN의 문자열 RR이 주어집니다. 이 문자열의 ii번째 글자 R_iR\_i는 다음과 같은 정보를 나타냅니다.

  • R_i=R\_i = W: ii번째 키위새가 본인이 이겼다고 말했습니다.
  • R_i=R\_i = D: ii번째 키위새가 본인이 비겼다고 말했습니다.
  • R_i=R\_i = L: ii번째 키위새가 본인이 졌다고 말했습니다.

모든 테스트 케이스에서 NN의 총합이 2×1052 \times 10^5를 넘지 않습니다.

출력

각 테스트 케이스에 대해 다음 내용을 출력합니다.

만약 키위새들이 채소를 낼 수 있는 조합이 존재한다면 YES를 한 줄에 출력하고, 그다음 줄에 길이 NN의 문자열 V′V'을 출력합니다. 이때, V′V'은 G, O, D 만으로 이루어진 문자열이어야 하고, V′V'에 따라 키위새들이 "가지 오이 당근"을 진행했을 때 결과가 RR에서 주어진 결과와 일치해야 합니다. 또한, VV의 ii번째 글자 V_iV\_i가 ?가 아니라면 V′_iV'\_i와 V_iV\_i는 일치해야 합니다.

키위새들이 채소를 낼 수 있는 조합이 존재하지 않는다면 NO를 한 줄에 출력합니다.

예제1

  1. 예제 1

    입력
    8
    10
    GD?DD??D?G
    LWLWWWLWLL
    10
    GOG?GO???O
    DDDDDDDDDD
    10
    GOGGGOGO?O
    DDDDDDDDDD
    10
    G??????G??
    DDDDDDDDDD
    10
    ?GG?GD??GD
    WWLWWLLLLW
    10
    D?GDOGD?DO
    WLLDWLWWLL
    7
    G?G?GG?
    WWWLWWL
    7
    ??????D
    WLLLLLL
    
    예상 출력
    YES
    GDGDDDGDGG
    YES
    GOGDGODDDO
    YES
    GOGGGOGODO
    YES
    GGGGGGGGGG
    NO
    NO
    YES
    GGGOGGO
    YES
    ODDDDDD