Le jeu de dés Mia introduit un ordre très non trivial d'ensembles de taille deux:
{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}
En général, l'ordre dans un tuple n'a pas d'importance {x,y}={y,x}
,
{1,2}
est supérieur à toute autre chose, les paires sont supérieures aux non-paires et la valeur numérique décide en cas d'égalité.
Supposons maintenant que vous vouliez utiliser des n
dés. De plus, les dés ont des m
visages.
Exemple:
{1,5,3,4} < {1,2,6,3}
depuis 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}
puisque les deux ensembles ont chacun une paire et 611> 522
En un mot, {1, ..., n}
c'est plus que toute autre chose. Soit p > q
, alors p-of-a-kind est supérieur à q-of-a-kind. En cas d'égalité, la deuxième (, troisième, ...) - la plus longue victoire en son genre. Enfin, si aucune décision n'a pu encore être prise, la plus grande valeur numérique l'emporte. La valeur numérique d'un ensemble est le plus grand entier que vous pouvez créer à partir des nombres disponibles dans l'ensemble, en utilisant la concaténation. Exemple:
{2,5,4,3}
devient 5432{4,11,3,4}
devient B443 (> les dés à 6 faces sont autorisés, B = 11)
Votre tâche consiste à écrire le plus petit programme possible (c'est-à-dire la fonction) dans la langue de votre choix, qui, étant donné deux conteneurs (liste, tableau, ensemble, ...), retourne si le premier ou le second l'emporte.
Remarque: vous pouvez supposer que les deux conteneurs ont la même longueur et ne contiennent que des entiers positifs, mais rien d'autre. Surtout, ils peuvent ne pas être triés. La valeur de retour peut être n'importe quoi, par exemple {-1, 0, 1} pour {premières victoires, égalité, deuxièmes victoires}.
{1,1,6}
,{2,2,5}
? Comparez-vous la valeur numérique du plus grand p-of-a-kind ou de n'importe quel dé?