가위바위보 토너먼트
면접 대비시간 제한1초메모리 제한256 MB
모든 경기의 승패를 선수별로 세어 w/(w+l)을 소수 셋째 자리까지 반올림해 출력하고, 분모가 0이면 -를 출력한다.
문제
가위바위보는 두 명의 플레이어 A와 B가 서로 독립적으로 바위(rock), 보(paper), 가위(scissors) 중 하나를 내는 게임입니다. 보는 바위를 이기고, 가위는 보를 이기며, 바위는 가위를 이깁니다. 두 플레이어가 같은 것을 내면 승부가 나지 않습니다(무승부).
명의 플레이어가 참가하는 토너먼트가 열립니다. 각 플레이어는 자신을 제외한 다른 모든 플레이어와 각각 번씩 가위바위보를 하므로, 전체 경기 수는 번입니다.
각 플레이어의 승률(win average)을 구하세요. 승률은 로 정의하며, 는 그 플레이어가 이긴 경기 수, 은 진 경기 수입니다(무승부는 세지 않습니다).
승률은 소수점 셋째 자리까지 반올림하여 출력합니다(정확히 형태가 되는 경계값은 올림). 이어서 승률이 정의되지 않으면 -를 출력합니다.
입력
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스의 첫 줄에는 두 정수 과 (, )가 주어집니다. 이어서 각 경기마다 한 줄씩 p1 m1 p2 m2 형식으로 주어집니다. 과 (, )는 두 플레이어의 번호이고, 과 는 각 플레이어가 낸 것으로 rock, scissors, paper 중 하나입니다. 각 테스트 케이스에는 정확히 개의 경기 줄이 있습니다. 마지막 테스트 케이스 다음에는 0 하나만 있는 줄이 옵니다.
출력
각 테스트 케이스마다 플레이어 1번부터 번까지 순서대로 한 줄에 한 명씩 승률을 소수점 셋째 자리까지 출력합니다. 승률이 정의되지 않으면 -를 출력합니다. 서로 다른 테스트 케이스의 출력 사이에는 빈 줄 하나를 넣습니다.