Nesta tarefa, consideramos matrizes de números inteiros positivos como este:
3 18 321 17 4 4 51 1 293 17
A entrada compreende um par de tais matrizes de comprimento positivo arbitrário, possivelmente distinto. Determinar se uma ordenação total ≤ X ⊂ N × N , onde N representa o conjunto dos números inteiros positivos, existe de modo a que ambas as matrizes de entrada estão em ordem em relação à ≤ X . Observe que (A ≤ X B ∧ B ≤ X A) ↔ A = B deve manter, ou seja, dois números são considerados iguais em ≤ X se e somente se eles tiverem o mesmo número.
Por exemplo, se a entrada fosse o par de matrizes
7 2 1 1 4 12 3
9 8 7 2 5 1
então você deve descobrir se existe uma ordem total ≤ X de tal forma que
7 ≤ X 2 ≤ X 1 ≤ X 1 ≤ X 4 ≤ X 12 ≤ X 3
e
9 ≤ X 8 ≤ X 7 ≤ X 2 ≤ X 5 ≤ X 1.
Seu envio pode ser uma sub-rotina ou programa que recebe duas matrizes (como especificado acima) de entrada de uma maneira definida pela implementação, calcula se existe uma ordem total ≤ X satisfazendo as demandas mencionadas acima e retorna um valor que representa "sim" ou outro valor representando "não". A escolha desses valores é arbitrária, por favor, documente-os.
Você pode supor que as matrizes de entrada não contenham mais que 2 15 - 1 elementos cada e que cada um de seus elementos esteja no intervalo de 1 a 2 15 - 1, inclusive. Você pode exigir que cada matriz seja finalizada por um sentinela constante fora do intervalo acima mencionado, como 0. Por favor, especifique o que o sentinela é necessário. Você pode exigir os comprimentos das matrizes como entrada adicional se o comprimento não puder ser deduzido das próprias matrizes (por exemplo, em idiomas como C). Além da proibição de brechas padrão, você não tem permissão para usar rotinas de classificação topológica.
Esse desafio é o código de golfe. O envio com a menor quantidade de caracteres vence.