ให้รายการของจำนวนเต็มบวกหาจำนวนของสามเหลี่ยมที่เราสามารถสร้างขึ้นเพื่อให้ความยาวด้านของพวกมันถูกแสดงด้วยสามรายการที่แตกต่างของรายการอินพุต
(แรงบันดาลใจมาจากCR )
รายละเอียด
- สามเหลี่ยมสามารถเกิดขึ้นถ้าทุกพีชคณิตในสามของความยาวด้านตอบสนองความเข้มงวดความไม่เท่าเทียมกันสามเหลี่ยม(ซึ่งหมายถึง ,และต้องถือไว้ทั้งหมด)+ B > C
- ความยาวทั้งสามด้านต้องปรากฏในตำแหน่งที่แตกต่างกันในรายการ แต่ไม่จำเป็นต้องแยกกันเป็นสองเท่า
- ลำดับของตัวเลขสามตัวในรายการอินพุตไม่สำคัญ หากเราพิจารณารายการ
a
และตัวเลขสามตัวa[i], a[j], a[k]
(ซึ่งi,j,k
แตกต่างกันตามลำดับคู่) ดังนั้น(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])
ทั้งหมดจะถือว่าเป็นรูปสามเหลี่ยมเดียวกัน - รายการอินพุตสามารถสันนิษฐานว่ามีอย่างน้อย 3 รายการ
- คุณสามารถสมมติว่ารายการอินพุตถูกเรียงลำดับจากน้อยไปหามาก
ตัวอย่าง
มีโปรแกรมทดสอบขนาดเล็กที่นี่ในลองออนไลน์!
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
สำหรับการป้อนข้อมูลของ[1,2,3,...,n-1,n]
นี้เป็นA002623
สำหรับการป้อนข้อมูลของ[1,1,...,1]
(ความยาวn
) นี่คือA000292
สำหรับการป้อนข้อมูลจากครั้งแรกที่n
ตัวเลข Fibonacci ( A000045 ) นี่คือA000004
[1,1,1,1]
อนุญาตให้ใช้รูปสามเหลี่ยมสามแบบ "ที่แตกต่างกัน" ทั้งหมด[1,1,1]
เพื่อเลือกโดยใช้สามใน 1 ใดก็ได้ แต่ไม่ใช่ 24 เพราะเลือก 1 อันที่ไม่มีการเรียงลำดับนั่นคือชุดย่อยของสามดัชนีแทนที่จะเป็นรายการที่เรียงลำดับ?