Rock-Paper-Scissors Tournament

Rock-Paper-Scissors is game for two players, $A$ and $B$, who each choose, independently of the other, one of rock, paper, or scissors. A player chosing paper wins over a player chosing rock; a player chosing scissors wins over a player chosing paper; a player chosing rock wins over a player chosing scissors. A player chosing the same thing as the other player neither wins nor loses.

A tournament has been organized in which each of $n$ players plays $k$ rock-scissors-paper games with each of the other players, so there are $kn(n-1)/2$ games in total. Your job is to compute the win average for each player, defined as $w / (w + l)$ where $w$ is the number of games won, and $l$ is the number of games lost, by the player.

Input consists of several test cases. The first line of input for each case contains $1 \leq n \leq 100, 1 \leq k \leq 100$ as defined above. For each game, a line follows containing $p_1, m_1, p_2, m_2$. $1 \leq p_1 \leq n$ and $1 \leq p_2 \leq n$ are distinct integers identifying two players; $m_1$ and $m_2$ are their respective moves ("rock", "scissors", or "paper"). A line containing 0 follows the last test case.

Output one line each for player 1, player 2, and so on, through player $n$, giving the playerâ€™s win average rounded to three decimal places. If the win average is undefined, output "-". Output an empty line between cases.

Sample Input 1 | Sample Output 1 |
---|---|

2 4 1 rock 2 paper 1 scissors 2 paper 1 rock 2 rock 2 rock 1 scissors 2 1 1 rock 2 paper 0 |
0.333 0.667 0.000 1.000 |