首先输入一个正整数N,接下来的一行共有N个正整数表示每个木棒的长度。
N ≤ 50, 木棒的长度 ≤ 10000.
输出一个整数表示方法数。
5 1 2 3 4 5
3
package main import ( "fmt" "sort" ) func main() { var arr []int var count int fmt.Scanln(&count) if count < 3 { fmt.Println(0) return } for i := 0; i < count; i++ { var num int fmt.Scanf("%d", &num) arr = append(arr, num) } sort.Ints(arr) // 尺取 ans := 0 for i := 0; i < len(arr) - 2; i ++ { l,r := i + 1, i + 2 for r < len(arr) { if r == l { r ++ continue } // 任意两边和大于另一个边 abL := arr[i] + arr[l] if abL > arr[r] { mostLessRight := r for mostLessRight < len(arr) && arr[mostLessRight] < abL { mostLessRight ++ } ans += mostLessRight - r l ++ }else { l ++ } } } fmt.Println(ans) }