Đưa ra một danh sách các số nguyên dương, tìm số tam giác mà chúng ta có thể tạo thành sao cho độ dài cạnh của chúng được biểu thị bằng ba mục khác nhau của danh sách đầu vào.
(Cảm hứng đến từ CR .)
Chi tiết
- Một tam giác có thể được hình thành nếu tất cả các hoán vị của ba cạnh dài thỏa mãn bất đẳng thức tam giác nghiêm ngặt (Điều này có nghĩa là , và phải giữ tất cả.)
- Ba chiều dài phải xuất hiện ở các vị trí riêng biệt trong danh sách, nhưng không nhất thiết phải khác biệt theo cặp.
- Thứ tự của ba số trong danh sách đầu vào không quan trọng. Nếu chúng ta xem xét một danh sách
a
và ba sốa[i], a[j], a[k]
(trong đói,j,k
khác nhau theo cặp), thì(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])
tất cả đều được coi là cùng một tam giác. - Danh sách đầu vào có thể được giả định chứa ít nhất 3 mục.
- Bạn có thể giả sử rằng danh sách đầu vào được sắp xếp theo thứ tự tăng dần.
Ví dụ
Một chương trình thử nghiệm nhỏ có thể được tìm thấy ở đây trên Dùng thử trực tuyến!
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
Đối với đầu vào của [1,2,3,...,n-1,n]
điều này là A002623 .
Đối với đầu vào của [1,1,...,1]
(độ dài n
), đây là A000292 .
Đối với đầu vào của các n
số Fibonacci đầu tiên ( A000045 ), đây là A000004 .
[1,1,1,1]
cho rằng nó cho phép 4 hình tam giác "khác nhau", tất cả[1,1,1]
, được chọn bằng cách sử dụng bất kỳ ba trong số 1? Nhưng, đó không phải là 24 vì ba số 1 được chọn không có thứ tự, tức là nó là một tập hợp con của ba chỉ số chứ không phải là một danh sách theo thứ tự?