가위바위보
시간 제한1초메모리 제한1024 MB
매 라운드에서 낼 손을 정해, 이기는 친구 수가 K 이하가 되는 최소 라운드 수와 그때의 손을 구한다.
문제
피돌이는 명의 친구들에게 선물을 주려고 한다. 하지만 가난했던 피돌이는 선물을 개 밖에 준비하지 못했다.
그럼에도 불구하고 최대한 공평하게 선물을 분배하기 위해 가위바위보로 명 이하의 인원을 뽑은 뒤 선물을 개씩 나누어 주려고 한다.
여러 명이서 동시에 가위바위보를 하면 비길 확률이 너무 높기 때문에, 피돌이는 자신을 이기는 사람만 살아남는 방식으로 뽑으려고 한다.
더 구체적으로 총 번의 라운드를 진행하는데, 처음에 명으로 시작하여 라운드마다 가위바위보로 피돌이를 이긴 사람만 다음 라운드를 계속 진행한다. 그러다가 남은 사람이 명 이하가 되면 즉시 종료하고 선물을 나누어 준다. 만일 아무도 남아있지 않거나 마지막 라운드 이후에도 명 넘게 남았다면 선물을 나누어 주지 못한다.
피돌이는 가위바위보를 하기 귀찮기 때문에 최대한 빠르게 뽑으려고 한다. 이를 위해 독심술을 써서 각 친구가 번째 라운드에 무엇을 낼 지 모두 파악해 두었다.
라운드를 최소한으로 진행하고 선물을 나누어 주려면 피돌이가 가위바위보를 어떻게 내는 것이 가장 좋을지 구하시오.
입력
첫째 줄에 친구들의 수 , 최대 라운드 수 , 준비한 선물의 개수 가 공백을 사이에 두고 주어진다.
둘째 줄부터 개의 줄에 걸쳐 각 친구가 무엇을 낼지 의미하는 문자열 이 주어진다. 는 번째 라운드에 낼 것을 의미하며 S는 가위, R은 바위, P는 보이다. ;
출력
만일 피돌이가 어떻게 내도 선물을 나누어 줄 수 없다면 첫째 줄에 -1을 출력하고 종료한다.
나누어 줄 수 있다면 첫째 줄에 선물을 나누어 주기 위해 필요한 최소 라운드 수 을 출력한다.
둘째 줄에 그때 피돌이가 어떻게 내야 하는지 의미하는 문자열 를 출력한다. 는 번째 라운드에 낼 것을 의미하며 S는 가위, R은 바위, P는 보이다. ; 가능한 답이 여러개 있다면 아무거나 하나 출력한다.
힌트
첫 번째 예제에서 피돌이가 첫 번째 라운드에서 보자기를 내면 3, 4번째 친구가 남고 두 번째 라운드에서 주먹을 내면 3번째 친구만 남아 선물을 나누어 줄 수 있다.
두 번째 예제에서 피돌이가 어떻게 내더라도 친구들이 모두 남거나 모두 탈락하기 때문에 선물을 나누어 줄 수 없다.