Étant donné une liste d'entiers positifs, trouvez le nombre de triangles que nous pouvons former de telle sorte que leurs longueurs latérales soient représentées par trois entrées distinctes de la liste d'entrée.
(L'inspiration vient de CR .)
Détails
- Un triangle peut être formé si toutes les permutations des trois longueurs latérales satisfont l' inégalité stricte du triangle (Cela signifie , et doivent tous tenir.)
- Les trois longueurs latérales doivent apparaître à des positions distinctes dans la liste, mais ne doivent pas nécessairement être distinctes deux à deux.
- L'ordre des trois nombres dans la liste d'entrée n'a pas d'importance. Si nous considérons une liste
a
et les trois nombresa[i], a[j], a[k]
(oùi,j,k
sont différents deux par deux),(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])
etc., tous sont considérés comme le même triangle. - La liste des entrées peut supposer contenir au moins 3 entrées.
- Vous pouvez supposer que la liste d'entrée est triée par ordre croissant.
Exemples
Un petit programme de test peut être trouvé ici sur Essayez-le en ligne!
Input, Output:
[1,2,3] 0
[1,1,1] 1
[1,1,1,1] 4
[1,2,3,4] 1
[3,4,5,7] 3
[1,42,69,666,1000000] 0
[12,23,34,45,56,67,78,89] 34
[1,2,3,4,5,6,7,8,9,10] 50
Pour l'entrée de [1,2,3,...,n-1,n]
ceci est A002623 .
Pour l'entrée de [1,1,...,1]
(longueur n
), c'est A000292 .
Pour l'entrée des premiers n
numéros de Fibonacci ( A000045 ), c'est A000004 .
[1,1,1,1]
permet de choisir 4 triangles "différents", tous[1,1,1]
en utilisant l'un des 1? Mais ce n'est pas 24 parce que les trois 1 sont choisis sans ordre, c'est-à-dire que c'est un sous-ensemble de trois indices plutôt qu'une liste ordonnée?