introduction
Un tableau de pointeurs est un tableau L
d'entiers non nuls où se 0 ≤ L[i]+i < len(L)
tient pour tous les indices i
(en supposant une indexation basée sur 0). Nous disons que l'indice i
pointe vers l'indice L[i]+i
. Un tableau de pointeurs est une boucle si les indices forment un seul cycle de longueur len(L)
. Voici quelques exemples:
[1,2,-1,3]
n'est pas un tableau de pointeurs, car le3
ne pointe pas vers un index.[1,2,-1,-3]
est un tableau de pointeurs, mais pas une boucle, car aucun index ne pointe vers le-1
.[2,2,-2,-2]
est un tableau de pointeurs, mais pas une boucle, car les indices forment deux cycles.[2,2,-1,-3]
est une boucle.
Contribution
Votre entrée est une liste non vide d'entiers non nuls, dans n'importe quel format raisonnable. Il peut ne pas être trié et / ou contenir des doublons.
Production
Votre sortie doit être une boucle qui contient tous les entiers de la liste d'entrée (et éventuellement d'autres entiers également), en comptant les multiplicités. Ils n'ont pas besoin de se produire dans le même ordre que dans l'entrée, et la sortie n'a pas besoin d'être minimale dans aucun sens.
Exemple
Pour l'entrée [2,-4,2]
, une sortie acceptable serait [2,2,-1,1,-4]
.
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. Le nombre d'octets le plus bas l'emporte et les failles standard sont interdites. L'inclusion de quelques exemples d'entrées et de sorties dans votre réponse est appréciée.
Cas de test
Celles-ci sont données dans le format input -> some possible output(s)
.
[1] -> [1,-1] or [1,1,1,-3]
[2] -> [2,-1,-1] or [1,2,-2,-1]
[-2] -> [1,1,-2] or [3,1,2,-2,-4]
[2,-2] -> [2,-1,1,-2] or [2,-1,2,-2,-1]
[2,2,2] -> [2,-1,2,-2,2,-2,-1] or [2,2,2,2,-3,-5]
[2,-4,2] -> [2,2,-1,1,-4] or [2,5,1,1,1,-4,2,-7,-1]
[3,-1,2,-2,-1,-5] -> [2,3,-1,2,-1,-5] or [3,3,-1,-1,2,2,-1,6,1,1,1,1,-12,-5]
[-2,-2,10,-2,-2,-2] -> [10,-1,1,-2,-2,1,-2,-2,1,-2,-2]
[-15,15,-15] -> [15,-1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,-15,-15]
[1,2,3,4,5] -> [1,2,3,-1,4,-1,5,-1,-1,-9,-1,-1]
n = 0
, car la spécification dit « entiers non nuls ».