|  | @@ -1,3 +1,24 @@
 | 
	
		
			
				|  |  | -func numberOfBoomerangs(points [][]int) int {
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +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
 | 
	
		
			
				|  |  |  }
 |