Contribution
Deux listes A
et B
d'entiers non négatifs.
Production
Ou bien 1
, 0
ou -1
, selon qu'il A
est supérieur à, égal à, ou plus petit que B
par rapport à l' ordre lexicographique torsadé tel que défini ci - dessous. Si vous le souhaitez, vous pouvez remplacer 1
, 0
et -1
par trois autres valeurs constantes.
L'ordre lexicographique tordu est semblable à l'ordre lexicographique ordinaire, en ce sens que vous comparez les listes élément par élément et décidez de leur ordre au premier indice différent. Cependant, dans la version torsadée, nous utilisons un ordre différent pour les entiers non négatifs à chaque index. À savoir, à chaque index i
(l'indexation commence à partir de 1
), l'ordre des premiers i
entiers non négatifs (de 0
à i-1
) est inversé, et ils sont déplacés au-dessus de tous les autres nombres. De plus, "l'élément manquant" qui signifie qu'une liste est plus courte que l'autre est déplacé directement en dessous i-1
. Visuellement, l'ordre à l'index i
est
i < i+1 < i+2 < i+3 < ... < [missing element] < i-1 < i-2 < i-3 < ... < 2 < 1 < 0
Notez que le premier ...
désigne une infinité de nombres. Cela signifie que les listes suivantes sont en ordre croissant par rapport à l'ordre lexicographique tordu:
[3,2,3,4]
[3,2,3,5]
[3,2,3,10]
[3,2,3,1341]
[3,2,3]
[3,2,3,3]
[3,2,3,2]
[3,2,3,1]
[3,2,3,0]
Règles
Vous pouvez donner un programme complet ou une fonction. Le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.
Cas de test
Output 1:
[0] []
[] [1]
[] [1,2,1,2]
[2,1] [1,1]
[0,1,2] [0,2,1]
[3,0] [3,1]
[3,1] [3]
[2] [2,2]
[2] [2,23]
[2,24] [2,23]
[2,1] [2,23]
Output 0:
[] []
[0] [0]
[1,1] [1,1]
[2,1,2] [2,1,2]
Output -1:
[1,2,1,1,2] [1,2,1,1,1]
[1,2,1,1,5] [1,2,1,1,4]
[1,2,1,1,5] [1,2,1,1]
[1,2,1] [1,2,1,1]
[1,2,1,1,5] [1,2,1,1,6]
[1,2,1,1,6] [1,2,1,1,7]