サイコロゲームMiaは、サイズ2のセットの非常に重要な順序を導入します。
{3,1} < {3,2} < {4,1} < {4,2} < {4,3} < {5,1} < {5,4} < {6,1} < {6,5} < {1,1} < {2,2} < {6,6} < {1,2}
一般に、タプル内の順序は重要{x,y}={y,x}
で
{1,2}
はなく、何よりも大きく、ペアは非ペアよりも大きく、同数の場合は数値によって決定されます。
ここで、n
サイコロを使用したいとします。また、サイコロにはm
顔があります。
例:
{1,5,3,4} < {1,2,6,3}
5431 <6321以降{1,2,3,5} < {1,1,5,6} < {1,1,5,5}, {1,1,6,6} < {1,1,1,3} < {2,2,2,3} < {1,1,1,1} < {1,2,3,4}
{2,2,5} < {1,1,6}
両方のセットにそれぞれ1つのペアがあり、611> 522であるため
一言で言えば、{1, ..., n}
何よりも優れています。とするp > q
と、p-of-a-kindはq-of-a-kindよりも大きくなります。引き分けの場合は、2番目(3番目、...)に最も長い種類の勝者です。最後に、まだ決定を下すことができない場合は、最大の数値が優先されます。セットの数値は、連結を使用して、セット内の使用可能な数値から作成できる最大の整数です。例:
{2,5,4,3}
5432になります{4,11,3,4}
B443になります(> 6面のダイスが許可され、B = 11)
あなたの仕事は、選択した言語で可能な限り最小のプログラム(つまり関数)を書くことです。つまり、2つのコンテナー(リスト、配列、セットなど)が与えられると、最初のものか2番目のもののどちらが勝るかを返します。
注:2つのコンテナーは同じ長さで、正の整数のみを含み、それ以外は何も含まないと想定できます。特にそれらはソートされない場合があります。戻り値は何でもかまいません。たとえば、{-1、0、1}は{最初の勝利、同点、2番目の勝利}です。
{1,1,6}
、{2,2,5}
?最大のPの種類または任意のサイコロの数値を比較しますか?