#756
Silver I
이상한 키보드
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

현욱이는 MO 두 개의 문자만 있는 키보드를 가지고 있다.

현욱이는 MO로 이루어진 길이 NN의 문자열 SS를 입력하려고 한다. 하지만 현욱이의 컴퓨터가 바이러스에 걸려 작동 방식이 변했다.

현욱이가 O를 입력할 때마다, 이전에 입력했던 모든 문자가 반전된 후 새로운 문자 O가 마지막에 추가된다. 여기서 반전이란 MO로, OM으로 바뀌는 것을 의미한다. M을 입력할 때는 반전 없이 문자 M만 추가된다.

현욱이가 원하는 문자열 SS를 입력할 수 있는지 확인하자.

또한, 매개변수 kk가 주어지는데, 이는 00 또는 11이다.

  • k=0k = 0이면, 현욱이가 원하는 문자열 SS를 입력할 수 있는지만 판단한다.
  • k=1k = 1이면, SS를 입력할 수 있는지 판단하고, 가능하다면 어떤 순서로 키를 눌러야 하는지도 구한다.

입력

첫째 줄에 테스트 케이스의 개수 TT와 매개변수 kk가 공백으로 구분되어 주어진다. (1T1041 \le T \le 10^4; 0k10 \le k \le 1)

각 테스트 케이스의 첫째 줄에 문자열의 길이 NN이 주어진다. (1N21051 \le N \le 2 \cdot 10^5)

둘째 줄에 MO로만 이루어진 길이 NN인 문자열 SS가 주어진다.

모든 테스트 케이스에 대한 NN의 합은 41054 \cdot 10^5을 초과하지 않는다.

출력

각 테스트 케이스마다 다음 절차에 따라 한 줄 또는 두 줄을 출력한다.

현욱이가 문자열 SS를 입력할 수 없다면 NO를 출력한다.

가능하다면 첫째 줄에 YES를 출력한다. 또한 k=1k=1인 경우, 둘째 줄에 현욱이가 SS를 입력하기 위해 눌러야 하는 키의 순서를 나타내는 길이 NN인 문자열을 출력한다. 가능한 답이 여러 가지라면 그중 하나를 출력한다.

예제 입력 1

2 0
3
MOO
5
OOMOO

예제 출력 1

YES
YES

예제 입력 2

2 1
3
MOO
5
OOMOO

예제 출력 2

YES
OMO
YES
MOOMO

점수

  • 입력 3-4: k=0k=0
  • 입력 5-6: k=1k=1, T ge 10^3, N ge 10
  • 입력 7-9: k=1k=1, T ge 10, N ge 1\,000
  • 입력 10-16: k=1k=1
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Silver I1명 투표· 약 1개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.