func numberOfBoomerangs(points [][]int) (cnt int) { n := len(points) dis := make([][]int, n) for i := 0; i < n; i++ { dis[i] = make([]int, n) } for i := 0; i < n-1; i++ { for j := i + 1; j < n; j++ { dx, dy := points[i][0]-points[j][0], points[i][1]-points[j][1] dis[i][j] = dx*dx + dy*dy dis[j][i] = dis[i][j] } } for i := 0; i < n; i++ { m := make(map[int]int) for j := 0; j < n; j++ { m[dis[i][j]]++ } for _, v := range m { cnt += v * (v - 1) } } return }