游戏分组 - 华为OD统一考试(C卷
package main import ( "fmt" ) func main() { a := [10]int{} sum := 0 ans := 10000 visited := map[int]bool{} for i := 0; i < 10; i++ { fmt.Scan(&a[i]) sum += a[i] } var dfs func(layer int, count int) dfs = func(layer int, count int) { if layer == 5 { ans = min(ans, abs(sum-2*count)) return } for i, num := range a { if visited[i] { continue } visited[i] = true dfs(layer+1, count+num) visited[i] = false } } dfs(0, 0) fmt.Println(ans) } func abs(a int) int { if a > 0 { return a } return -a }