가위바위보
면접 대비시간 제한1초메모리 제한1024 MB
남는 친구가 1명 이상 K명 이하가 되도록 Pidol이 낼 수를 정하고, 필요한 최소 라운드 수와 그 수열을 구합니다.
문제
피돌이는 명의 친구들에게 선물을 주려고 한다. 하지만 가난했던 피돌이는 선물을 개() 밖에 준비하지 못했다. 그래도 최대한 공평하게 나누기 위해, 가위바위보로 명 이하의 사람을 뽑은 뒤 한 명에게 선물을 하나씩 준다. 여러 명이 동시에 가위바위보를 하면 비기는 경우가 많으므로, 피돌이를 이긴 사람만 살아남는 방식을 쓴다. 게임은 총 라운드까지 진행된다. 처음에는 명으로 시작하고, 라운드마다 피돌이를 이긴 사람만 다음 라운드로 넘어간다. 남은 사람이 명 이하가 되는 즉시 게임이 끝나고 선물을 나누어 준다. 아무도 남지 않았거나 마지막 라운드가 끝난 뒤에도 명을 넘게 남았다면 선물을 나누어 줄 수 없다. 피돌이는 가위바위보를 하기 귀찮아서 가능한 한 빨리 뽑으려고 한다. 독심술로 각 친구가 번째() 라운드에 무엇을 낼지 미리 알고 있다. 선물을 나누어 주는 데 필요한 라운드 수를 최소로 하려면 피돌이가 어떻게 내야 하는지 구하시오.
입력
첫째 줄에 친구들의 수 , 최대 라운드 수 , 준비한 선물의 개수 가 공백으로 구분되어 주어진다. (, ) 둘째 줄부터 개의 줄에 걸쳐 각 친구가 낼 손을 나타내는 문자열 이 주어진다. 는 번째 라운드에 낼 것이며, S는 가위, R은 바위, P는 보다. (, )
출력
피돌이가 어떻게 내더라도 선물을 나누어 줄 수 없다면 첫째 줄에 -1을 출력한다. 나누어 줄 수 있다면 첫째 줄에 선물을 나누어 주는 데 필요한 최소 라운드 수 를 출력한다. () 둘째 줄에는 피돌이가 각 라운드에 내야 할 손을 나타내는 문자열 를 출력한다. 는 번째 라운드에 낼 것이며, S는 가위, R은 바위, P는 보다. (, ) 답이 여러 개라면 그중 아무거나 하나를 출력한다.
힌트
첫 번째 예제에서 피돌이가 첫 번째 라운드에 보를 내면 3번째와 4번째 친구가 남는다. 이어서 두 번째 라운드에 바위를 내면 3번째 친구만 남아 선물을 나누어 줄 수 있다. 두 번째 예제에서는 피돌이가 어떻게 내더라도 친구들이 모두 남거나 모두 탈락하므로 선물을 나누어 줄 수 없다.