BoB003-B: 5-Choice RPS

2 secs 1024 MB
kyaneko999's icon kyaneko999

解説

以下のような集合やリストを作成して勝敗を判定することができます.

  • win[v]win[v]vv よりも弱い手の集合(リスト)

なお,55 種類の手を表す文字列の頭文字が相異なることを利用して,実装量を減らすテクニック(例:'monkey''m' )もあります.

解答例(Python)

少しテクニカルな別解を紹介します.
各文字列に対応する頂点を作り,'monkey''robot''ninja''zombie''pirate''monkey' という順でサイクル状に有向辺を張ります.
このグラフの上で,SXS_X から SYS_Y への距離が 22 以下であるかどうかで勝敗を判定することができます.

解答例(Python)