Diberikan daftar bilangan bulat positif, temukan jumlah segitiga yang dapat kita bentuk sedemikian rupa sehingga panjang sisi mereka diwakili oleh tiga entri berbeda dari daftar input.
(Inspirasi berasal dari CR .)
Detail
- Segitiga dapat dibentuk jika semua permutasi dari panjang tiga sisi memenuhi ketimpangan segitiga ketat(Ini berarti , dan harus dimiliki semua.)
- Tiga panjang sisi harus muncul pada posisi yang berbeda dalam daftar, tetapi tidak harus berbeda secara berpasangan.
- Urutan tiga angka dalam daftar input tidak masalah. Jika kita mempertimbangkan daftar
a
dan tiga angkaa[i], a[j], a[k]
(di manai,j,k
berpasangan berbeda), maka(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])
dll. Semua dianggap sebagai segitiga yang sama . - Daftar input dapat dianggap mengandung setidaknya 3 entri.
- Anda dapat mengasumsikan bahwa daftar input diurutkan dalam urutan menaik.
Contohnya
Program uji kecil dapat ditemukan di sini di Coba 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
Untuk inputnya [1,2,3,...,n-1,n]
adalah A002623 .
Untuk input [1,1,...,1]
(panjang n
) ini adalah A000292 .
Untuk input n
angka Fibonacci pertama ( A000045 ) ini adalah A000004 .
[1,1,1,1]
memungkinkan 4 segitiga "berbeda", semua[1,1,1]
, dipilih menggunakan tiga dari 1 itu? Tapi, ini bukan 24 karena tiga 1 dipilih tanpa urutan, yaitu subset dari tiga indeks daripada daftar yang dipesan?