크리스와 티이라는 친구들과 함께 카트라이더 친선전을 개최했다. 크리스의 팀을 '레드팀', 티이라의 팀을 '블루팀'이라고 하자.
이 친선전은 여러 라운드로 구성된다. 라운드마다 레드팀과 블루팀 중 한 팀이 승리를 거두며, 승리한 팀은 점을 획득한다. 두 팀의 점수 차이가 점 이상 벌어지면 그 순간 친선전이 종료된다.
친선전이 끝났을 때, 총 번의 라운드가 진행되었고, 크리스와 티이라는 각 라운드의 승자를 기록해 두었다.
그러나 아쉽게도 이 기록 중 일부가 유실되고 말았다. 유실된 기록 중 복구 가능한 것들을 최대한 되살리는 프로그램을 작성하라.
첫 줄에 친선전에서 진행된 라운드의 수를 정수 과 친선전이 종료되는 조건을 나타내는 정수 가 공백으로 구분되어 주어진다. ( )
그다음 줄에 각 라운드의 승자를 나타내는 길이 인 문자열이 주어진다.
문자열의 번째 문자는 R
, B
, ?
중 하나이며,
R
은 번째 라운드에서 레드팀이 승리하였음을,
B
는 블루팀이 승리하였음을,
?
는 기록이 유실되어 승자를 알 수 없음을 의미한다.
주어진 조건을 만족하면서, 정확히 번째 라운드에 종료된 친선전의 기록만 주어진다.
첫 줄에 유실된 기록 중 복구 가능한 것들을 최대한 살린 결과를 나타내는 길이 인 문자열을 출력한다.
번째 문자가 R
이라면 번째 라운드에서 레드팀이 승리하였음을,
B
이라면 블루팀이 승리하였음을,
?
이라면 유실된 기록을 복구할 수 없음을 의미한다.
4 2 ?B?R
RBRR
2 2 ??
??
6 2 R???B?
RB??BB
8 2 ?RR??R?B
BRRBBRBB
5 3 R?R??
RBRRR
입력 예제 1에서, 모든 유실된 기록을 복원할 수 있다.
입력 예제 2에서, RR
, BB
두 가지 경우가 가능하므로, 유실된 기록을 복원할 수 없다.
입력 예제 3에서, RBRBBB
, RBBRBB
두 가지 경우가 가능하므로, 세 번째 라운드와 네 번째 라운드의 유실된 기록은 복원할 수 없지만, 두 번째와 여섯 번째 라운드의 유실된 기록은 복원할 수 있다.
입력 예제 4와 5에서, 모든 유실된 기록을 복원할 수 있다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 12점
마지막 라운드의 기록만 유일하게 유실됨.
종류 2: 10점
기록이 유실된 라운드가 정확하게 두 개.
종류 3: 19점
기록이 유실된 라운드가 개 이하.
종류 4: 26점
종류 5: 33점
추가적인 제한 조건이 없음.