Problem F
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
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
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 |