O jogo de dados Mia apresenta uma ordem não trivial de conjuntos de tamanho dois:
{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}
Em geral, a ordem dentro de uma tupla não importa {x,y}={y,x}
,
{1,2}
é maior que qualquer outra coisa, Pares são maiores que não pares e o valor numérico decide em caso de empate.
Agora, suponha que você queira usar n
dados. Além disso, os dados têm m
rostos.
Exemplo:
{1,5,3,4} < {1,2,6,3}
desde 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}
uma vez que os dois conjuntos têm cada par e 611> 522
Em poucas palavras, {1, ..., n}
é maior do que qualquer outra coisa. Vamos p > q
, então p-do-tipo é maior que q-do-tipo. Em caso de empate, o segundo (, terceiro, ...) - o maior do gênero vence. Finalmente, se nenhuma decisão puder ser tomada ainda, o maior valor numérico vence. O valor numérico de um conjunto é o maior número inteiro que você pode construir a partir dos números disponíveis no conjunto, usando concatenação. Exemplo:
{2,5,4,3}
torna-se 5432{4,11,3,4}
torna-se B443 (dados com 6 faces são permitidos, B = 11)
Sua tarefa é escrever o menor programa possível (ou seja, função) no idioma de sua escolha, que, considerando dois contêineres (lista, matriz, conjunto, ...) retorne se o primeiro ou o segundo vence.
Nota: você pode assumir que os dois contêineres têm o mesmo comprimento e contêm apenas números inteiros positivos, mas nada mais. Especialmente eles podem não ser classificados. O valor de retorno pode ser qualquer coisa, por exemplo, {-1, 0, 1} para {primeiras vitórias, empate, segundas vitórias}.
{1,1,6}
,{2,2,5}
? Você compara o valor numérico do maior p-de-um-tipo ou de qualquer dado?