Bestimmen Sie anhand einer Liste positiver Ganzzahlen die Anzahl der Dreiecke, die wir so bilden können, dass ihre Seitenlängen durch drei verschiedene Einträge in der Eingabeliste dargestellt werden.
(Inspiration kommt von CR .)
Einzelheiten
- Ein Dreieck kann gebildet werden, wenn alle Permutationen der drei Seitenlängen die strenge Dreieckungleichung erfüllen(Dies bedeutet, dass , und alle gelten müssen.)
- Die drei Seitenlängen müssen an unterschiedlichen Positionen in der Liste erscheinen, müssen aber nicht unbedingt paarweise unterschiedlich sein.
- Die Reihenfolge der drei Zahlen in der Eingabeliste spielt keine Rolle. Betrachten wir eine Liste
a
und die drei Zahlena[i], a[j], a[k]
(woi,j,k
paarweise verschieden sind), dann werden(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])
usw. alle als das gleiche Dreieck betrachtet. - Die Eingabeliste kann mindestens 3 Einträge enthalten.
- Sie können davon ausgehen, dass die Eingabeliste aufsteigend sortiert ist.
Beispiele
Ein kleines Testprogramm finden Sie hier auf Try it online!
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
Für die Eingabe ist [1,2,3,...,n-1,n]
dies A002623 .
Für die Eingabe von [1,1,...,1]
(Länge n
) ist dies A000292 .
Für die Eingabe der ersten n
Fibonacci-Zahlen ( A000045 ) ist dies A000004 .
[1,1,1,1]
dass 4 "verschiedene" Dreiecke[1,1,1]
ausgewählt werden können, indem drei der Einsen verwendet werden. Aber es ist nicht 24, weil die drei Einsen ungeordnet gewählt sind, dh es ist eine Teilmenge von drei Indizes und keine geordnete Liste?